趙清實
支付碼、名片碼、健康碼、校園碼、復學碼、乘車碼、挪車碼……這么多碼?光疫情期間,微信“碼上經(jīng)濟”就用掉了1 400億個二維碼,那么就有同學問了:二維碼會被人類掃完嗎?
問題很簡單,答案是:會。
因為二維碼的尺寸是有限的,那二維碼的數(shù)量就是有限的。但是掃完所有的二維碼,需要很長很長很長很長的時間。現(xiàn)在的二維碼有40個官方版本(二維碼是由Denso公司于1994年9月研制的一種矩陣二維碼符號)。從Version1-40,最小為21×21、最大為177×177矩陣。
其中,微信名片就是37×37的矩陣規(guī)格,微信的付款碼是25×25的矩陣規(guī)格。方便理解,我們用方塊作為矩陣單位,我們來舉個例子:下面四宮格,每個格子有兩種顏色變化,請問一個四宮格可以組合出多少個圖形?
解:1個格子2種顏色,那就是2種可能,2個格子就是4種可能,3個格子就是8種可能,4個格子就是16種可能。所以,四宮格能夠組成24,共16個圖形,以此類推25×25的微信付款碼就是……
每一排有25個方塊,共25列,除去定位用的方塊和冗余糾錯的方塊等,還剩下478個方塊。按照二進制,每個方塊只有黑或白兩種選擇,所以478個小方塊理論上一共可以組合2478個二維碼。也就是一個25×25規(guī)格尺寸的二維碼可以生成:78043713757899805784539930744829157643714953566624278 77147892399063429347049414050300765257658729927899567 32780351655723861993919822071326572544個二維碼。
大家可以嘗試念出來大概多少個?根據(jù)疫情期間1 400億個維碼的數(shù)量來計算,假設(shè)微信一年會用掉6 000億個二維碼。那微信用掉25×25這一個尺寸產(chǎn)生的二維碼需要多少年呢?我們來算一下:2478/6 000億=1.301×10132年。
二維碼咱中國是不缺了,推廣一下,世界上所有人都用,那就是1.301×10132/5 = 2.602 x 10131年(好多億億億億年)。
所以,雖然二維碼也是有限的,但是要掃完所有的二維碼,估計要等上很久了。