黑馬三
提起二維碼,想必大家都不會陌生.因為這種在移動設(shè)備上使用的編碼方式,早已滲透到生產(chǎn)、生活的方方面面.據(jù)不完全統(tǒng)計,二維碼作為一種全新的信息存儲、傳遞和識別技術(shù),目前廣泛應(yīng)用于公安、外交、軍事、海關(guān)、稅務(wù)、商業(yè)、交通、郵政等部門,在信息獲取、網(wǎng)站跳轉(zhuǎn)、廣告推送、手機電商、防偽溯源、優(yōu)惠促銷、會員管理、賬號管理等方面發(fā)揮著重要作用.
以微信為例,登錄、支付、管理等操作都會生成大量二維碼,每天如此,需要的二維碼數(shù)目就非常巨大.因此,有人就擔(dān)憂:二維碼會被掃完嗎?要回答這個問題,必須先從二維碼的構(gòu)造說起.
更高級的條碼格式
所謂二維碼,是指用某種特定的幾何圖形按一定規(guī)律在平面(二維方向)上分布的、黑白相間的、記錄數(shù)據(jù)符號信息的圖形.通俗來說,二維碼的信息存儲方式采用的是二進制,只不過0和1分別用黑和白來表示.這樣我們就明白了用黑白方格組成的二維碼的數(shù)學(xué)含義:使用若干個與二進制相對應(yīng)的幾何形體來表示文字的數(shù)值信息,可通過相關(guān)設(shè)備進行自動識讀處理.
與一維的條形碼相比,二維碼除了具有編碼范圍廣、糾錯能力強、譯碼水平高、成本低廉、易于制作等特點外,最明顯的優(yōu)勢在于編碼高密度、信息容量大,生成數(shù)目幾乎不受限制.
二維碼目前共有40個官方版本,編號從 Version1~ Version40,其中 Version1是21×21矩陣,其次 Version2是25×25矩陣,Version3是29×29矩陣……每個版本都比前一個版本增加4,以此類推,Version40就是177×177矩陣.
以 Version4版本,即33×33矩陣為例,粗略地統(tǒng)計有1000個小方格.
將這1000個方格任意涂成黑、白色,每個方格都有黑、白2種涂法,那么1000個方格的涂法就有=21000 種,這就是理論意義上 Version4可生成的二維碼數(shù)目.
考慮到在實際應(yīng)用中,需要一些用于定位和冗余糾錯的小方格,即便這些其他用途的編碼所需的信息占據(jù)了50%的存儲空間,即占用500個小方格,那么還有500個作為數(shù)據(jù)碼.根據(jù)上面的計算方法可知,500個方格的涂法就有2500種,即 Version4最少可生成2500個不同的二維碼.那么,這個數(shù)據(jù)究竟有多大呢?讓我們先來了解一下最大的計數(shù)單位——“古戈爾”.
“最大”的計數(shù)單位
“古戈爾”表示的是10100,這個數(shù)是個現(xiàn)實界限,因為宇宙間任何一個實際量都不能超過它.
比如,地球的面積約為5.1億平方千米,如果用平方毫米來表示,也只不過是5×1020平方毫米.地球的體積約為10830億立方千米,如果我們用立方毫米來表示,那也只有1030立方毫米.1立方毫米相當(dāng)于一根大頭針的針頭那么大,里面最多可容納10粒細(xì)沙,那么整個地球的體積內(nèi),能容納的細(xì)沙數(shù)為1031粒.這些數(shù)字顯然遠(yuǎn)遠(yuǎn)小于“古戈爾”.
再比如,星際距離一般用光年來度量,1光年是光線1年通過的距離,約9460730472580千米.假定人類所能觀測到的空間范圍約200億光年(1光年≈1019毫米),用最小的長度單位“?!保?毫米=107埃)來表示,也只有1036埃.
了解了“古戈爾”,我們再來看2500,不難判斷,2500=(25)100=32100遠(yuǎn)大于10100,大到你根本讀不出來,只能用無休無止來形容.再以大家熟悉的手機微信付款碼為例來說明:它是一個25×25的矩陣,除去用于定位和冗余糾錯的方塊,可供使用的方塊有478個,可以構(gòu)成2478個二維碼.假設(shè)微信一年掃掉6000億個二維碼,那么用完25×25矩陣的二維碼需要1.301×10132年,遠(yuǎn)遠(yuǎn)超過地球50億年的壽命.因此,我們大可不必憂心二維碼用完之時就是“世界末日”.