IT之家5月27日消息 支付碼、名片碼、健康碼、校園碼、復學碼、乘車碼、挪車碼....這麼多碼?那麼就有同學來問了:二維碼會被人類掃完嗎?
騰訊公司今天進行了回答,答案是:會。因為二維碼的尺寸是有限的,那二維碼的數量就是有限的。但是掃完所有的二維碼,需要很長很長很長很長的時間。
現在的二維碼有40個官方版本(二維碼是由Denso公司於1994年9月研製的一種矩陣二維碼符號)。從Version1-40,最小為21*21、最大為177*177矩陣。
IT之家獲悉,其中,微信名片就是37×37 的矩陣規格,微信的付款碼是 25×25 的矩陣規格。方便理解,我們用方塊作為矩陣單位。
掃37×37矩陣的二維碼如何計算,各矩陣中生成的二維碼個數?我們來舉個例子:
下面四宮格,每個格子有兩種顏色變化,請問一個四宮格可以組合出多少個圖形?
解:一個格子兩種顏色,那就是兩種可能,兩個格子就是四種可能,三個格子就是8種可能,四個格子就是16種可能。所以,四宮格能夠組成2^4,共16個圖形。
以此類推:
25X25 的微信付款碼
每一排有 25 個方塊,共 25 列,除去定位用的方塊和冗餘糾錯的方塊等,還剩下478 個方塊。按照二進制,每個方塊只有黑或白兩種選擇,所以 478 個小方塊理論上一共可以組合 2^478 個二維碼。
也就是一個25X25規格尺寸的二維碼可以生成:780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572544個二維碼。大家可以嘗試念出來大概多少個?
根據疫情期間1400億個二維碼的數量來計算,假設微信一年會用掉6000億個二維碼。那微信用掉25X25這一個尺寸產生的二維碼需要多少年呢?
我們來算一下:2^478/6000億=1.301×10^132 年(超多億億億億年)
二維碼中國人是不缺了,並且世界上所有人都用,那就是
1.301×10^132 / 5 = 2.602 x 10^131 年(好多億億億億年)
根據資料,宇宙中大約有700垓(7x10^22)顆恆星,又根據德雷克公式
預計會有15600000個星球有智能生命,假設每顆星球上有地球同等人口需要掃二維碼的外星人,那夠全宇宙掃
2.602 x 10^131 / 1.56x10^7 = 1.668x10^124 年(很多億億億億年)
參考熱寂理論對宇宙終極命運猜想, 一千萬億年後,行星脱離軌道,所有生物都沒辦法依靠恆星活着了,那個時候二維碼還是遠遠沒有掃完。看來,全宇宙都用上也不愁了。只是,人類可觀測宇宙有大約為93 × 10^9光年,所以離地球遠點的星球,估計要等上好一陣才能掃到碼了。