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