所謂二維碼是指用某種特定的幾何圖形按一定規律在平面(二維方向)上分佈的、黑白相間的、記錄資料符號資訊的圖形。通俗地解釋是,二維碼的資訊儲存方式採用的是二進位制,只不過0和1分別用黑、白來表示。因此,只要留意觀察,就會明白用黑、白方格組成的二維碼的數學含義:使用若干個與二進位制相對應的幾何形體來表示文字數值資訊,可透過相關裝置進行自動識讀處理。
與一維的條形碼相比,二維碼除了具有編碼範圍廣、糾錯能力強、譯碼水平高、成本低廉、易於製作等特點,最明顯的優勢在於高密度編碼,資訊容量大,生成數目幾乎不受限制。
二維碼目前共有40個官方版本,編號從Version1到Version40,其中Version1是21×21矩陣,其次Version2是25×25矩陣,再次Version3是29×29矩陣……每個版本都比前一個版本增加4,依次類推,21+4×39=177,所以Version40就是177×177矩陣。
比如從中取Version4版本即33×33矩陣,那麼,粗略地統計就有1000個小方格,將這1000個方格任意塗成黑、白色的塗法總共有21000種。原因很簡單,每個方格都有黑、白2種塗法,那麼1000個方格的塗法就有
種。這就是理論意義上Version4可生成的二維碼數目。
考慮到實際應用中,需要一些定位和冗餘糾錯用的小方格,即便是最保守的估計,這些其它用途的編碼所需資訊儲存空間為50%,即佔用500個小方格,那麼還有500個作為資料碼。根據上面的計算方法可知,500個方格的塗法就有2500,即Version4最少可生成2500個不同的二維碼。那麼,這個資料究竟有多大呢?在此允許我賣個關子,先向大家介紹“古戈爾”(googol)。
“古戈爾”表示的是10100,這個數是個現實界限,因為宇宙間任何一個實際量都不能超過它。
比如,地球的面積約為510000000平方千米,如果用平方毫米來表示,也只不過是5×1020平方毫米。地球的體積為1083000000000立方千米,如果我們用立方毫米來表示,那也只有1030立方毫米。1立方毫米相當於一根大頭針的針頭那麼大,裡面最多可以容納10粒細沙,那麼整個地球的體積內,也只能容納1031粒細沙,這些數字顯然遠遠小於“古戈爾”。
再比如,目前世界上最高速的電子計算機每秒鐘運算10億(109)次,即使假定它從宇宙形成時(距今約200億年)就開始運算,那麼到今天,它的運算次數也達不到10100次方次。另外,星際距離一般用光年來度量,1光年是光線1年透過的距離,約9500000000000千米。目前我們人類所能觀測到的空間範圍約100億光年,用最小的長度單位埃(1埃是千分之一毫米)來表示,也只有1036埃。
此外,宇宙是人類科學研究物件中最大的一個,原子核是最小的一個,它的直徑為10-13~10-12釐米,而這兩個研究物件的大小對比的倍數,也只有1040倍。
最後再來說說時間吧,表示宇宙中最長的時間的量叫“宇宙時間”,這一時間也只不過是光線穿過原子核那麼大小的空間所用的時間的1040倍。這所有的一切數都不能夠超過“古戈爾”。
也正因為此,斯坦福大學的年輕大學生謝爾蓋·布林為其搜尋引擎命名“谷歌”(Google)就頗具深意,相近的讀音隱喻著創始人對“谷歌”的期望,即無所不包無所不及。
好,有了“古戈爾”的鋪墊,現在我們再來看2500,不難判斷,2500=(28)100=32100遠大於10100,可以肯定的是,這個數大到你根本讀不出來,只能用無休無止來形容。
為了強化二維碼幾近“無窮無盡”的特徵,再以大家熟悉的手機微信付款碼為例說明:它是一個25×25的矩陣,除去定位和冗餘糾錯用的方塊,可供使用的方塊有478個,可以構成2478個二維碼。假設微信一年掃掉6000億個二維碼,那麼用完25×25矩陣二維碼就需要1.301×10132年,遠遠超過50億年的地球壽命,因此,儘管有人說過二維碼用完之時就是世界末日,其實也沒什麼可擔心的喲!
中國科學探索中心微信公眾號歡迎賜稿!
稿件內容以反偽破迷為核心思想,科學普及、科學文化、科技哲學、科學與公眾、世俗人文主義、科技倫理等領域均可涉及,旨在將科學探索結果無偏見地告知公眾,避免公眾上當受騙。
稿件一經採用,將奉上稿酬。
投稿郵箱:
崇尚科學 反偽破迷