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