图为:二维码的一些标识符
其实设计者也考虑到了这一点了,二维码除了充满我们想要的数据外,还有一些标识符帮助正确读取代码。
能把翻转的二维码读取出来的是因为有二维码三个角落里的位置探测图形,而能把损坏到一定程度的二维码读取出来,取决于编写代码时使用的错误纠正级别。
那么我们到底能生成多个二维码呢?
目前二维码的正式版本有40个,在版本1-40中,最小值为21*21的矩阵,而最大值为177*177的矩阵。
其中微信名片为37*37矩阵规范,而微信支付码为25*25矩阵规范。我们就来简单计算下微信支付能生成多少个二维码组合。
为了便于理解,我们使用上图2*2的矩阵规范为例子。
在这个图形中,每个小正方形里都可以有黑白两个颜色的变化,一个四边形中可以组合多少个形状呢?
这个很简单,一个方格有两种可能,两个方格有四种可能,三个方格有八种可能,四个方格有16种可能。
图为:2*2规范的二维码有16种组合
所以,这样一个2*2的矩阵里可以组成2^4,总共可以得到16个图形。
现在回到25*25微信支付代码,每行有25个方块,共25行,在去除方块进行定位、冗余的纠错方块等后,剩下478个方块。
在二进制中,每个方块只有黑白两种选择,所以478个小方块理论上总共可以组成2^478个二维码。
这个二维码数据已经和宇宙总原子数量10^80次方已经差不多了。
地球的二维码能用多久呢?
微信在疫情期间总共使用了1400亿个二维码,我们假设微信每年使用6000亿个二维码。简单的算一下,微信支付的二维码够微信使用,2^478/ 6000亿= 1.301 x 10^132年。
放眼全世界,一天二维码的使用量大概在100亿个左右,即使全世界的老百姓都使用25*25规范的二维码。
这个数据是2^478/100亿,差不多是7.806×10^133天,宇宙灭亡前,这个规范的二维码都不会被用完。
而且即使真的有一天二维码需求量再暴涨,那也不用担心,现在已经开发了40个版本,可以其实可以开发更多版本来替代。
所以,放心的去使用吧,完全不用担心二维码会被用完。