如今,二維碼已經成為我們日常生活中必不可少的一部分。這個結果或許二維碼的發明者當初都沒想到。二維碼的出現和使用,已經完全顛覆了我們的生活。現在,如果離開了二維碼,許多事情都無法進行下去,甚至嚴重情況下會讓人寸步難行。因為現在無論是吃飯、逛超市、乘車、購物、交友、出行、收付款等等都要用到二維碼。總之,二維碼已經完全滲透到人們日常生活中的方方面面,如果離開了二維碼,世界將會亂成一團。
二維碼應用范圍之廣,使用頻率之高,使用數量之大,都是前所未有的。據統計,在新冠病毒流行期間,光是微信一個APP就使用了1600億個二維碼。目前全世界一天就要消耗掉100多億個二維碼。如此巨大的使用量,二維碼能撐得住嗎?有很多人都在擔心,二維碼是不是總有一天會被用完,如果二維碼用完之后,我們怎么辦,是不是會有更好的替代方案?這一系列問題,細想起來還真的有點嚇人。如果沒有二維碼了,又要讓我天天帶那么多現金出門,我太難了!那么二維碼真的有可能被用完嗎?如果出現這種情況我們將怎么辦?在回答這些問題之前,我們先來簡單了解一下二維碼。什么是二維碼要了解二維碼,就得先提一下“一維碼”。所謂“一維碼”就是指我們在各種商品外包裝上看到的條形碼。條形碼最早出現于上世紀60年代,其發明人為諾曼?約瑟夫?伍德蘭德。條形碼的出現,從根本上改變了全球的商業活動模式,它大大提高了商品的流通、倉儲、配送、零售等環節的工作效率,使得大型超市的出現成為了可能,并且極大地促進了商業領域的發展,給消費者提供了更好的購物體驗,大大節省了購物時間。經過了幾十年的高速發展,人們逐漸發現條形碼已經不能完全滿足需求,而且它的缺點也是越來越明顯。比如條形碼的數據容量較小只有30個字符左右,它只能包含字母和數字,而且條形碼的尺寸相對較大,條形碼遭到損壞后便不能閱讀等等。所有這些缺點,讓人們感覺尋找一種能替代條形碼的全新方法非常迫切。當時,世界上很多公司和科研機構都在為尋找條形碼的替代方案而努力。這其中,來自日本電裝株式會社旗下名為DensoWave的子公司也參與其中,這是一家主要給豐田汽車供應零配件的公司。這家公司的職員騰弘原帶領一個團隊,專門負責攻克跳出傳統的條形碼,如何在零件標簽上存儲更多的產品信息的難題。騰弘原團隊經過兩年的研究,終于在1994年時成功地將一維碼(條形碼)升級成二維碼,信息儲量由此一下增加了250倍!最初的二維碼由不同顏色的色塊承擔不同的記錄功能,大幅提高了信息容量。之前使用的條形碼只能存儲20個日文字符,很難滿足存儲大量信息的需要。而新的二維碼可以存儲5000個日文字符,足夠將好幾頁說明書濃縮在零件標簽頁上。由此誕生了我們今天常見的黑白二維碼。由于騰弘原和DensoWave公司放棄了二維碼專利權,所以現在二維碼才得以在世界范圍內廣泛應用,并且發展神速。二維碼的基本原理從外表上看,二維碼就是一個由黑白小方塊組成的矩陣,實際上它其實就是將需要存儲或者表達的信息采用黑白小方塊填入一個大方塊里的形式外化出來。之后,人們通過專門的二維碼讀取和識別技術及設備,讀取其中存儲的信息。目前用得最多最廣泛的就是手機,通過手機掃描二維碼然后讀取這些被填入的信息,再將這些信息轉化成機器或人類看得懂的文字、符號、鏈接等。同計算機一樣,二維碼中也是使用二進制算法。二維碼中白色的小方塊代表0,而黑色的小方塊代表1,把它們拼湊在一起就變成了一個0/1自由組合的圖形。這樣的組合是計算機們非常喜歡的,也是計算機們非常熟悉的信息。而二維碼中存儲的那些信息,是人們提前通過二維碼的不同組合方式編輯過的。當機器識別出二維碼不同的排列方式之后,它就會把每個不同的排列方式對所應的信息進行解讀,然后根據需要,轉換成機器或者人們可以識別的信息。當然,為了保證二維碼能別正確地識別和解讀,還采用了很多技術措施,這里面涉及到許多專業知識。作為普通人我們不需要了解那么多,只要大體上知道二維碼的基本原理就行了,那些專業的事情就交給專業的人士去處理吧。二維碼究竟會不會被用完?如果用完了,會不會有相應的替代方案?如果單從二維碼的數量上來說,它是會被用完的。因為從目前來看,二維碼的數量是有一定限度的。從理論上來說,在數量不變的情況下,只要有足夠的消耗速度和足夠的消耗時間,那么肯定會將二維碼消耗完的!但是,這只是理論上存在這種可能,從實際使用上來看,人類是不可能把二維碼用完的。因為即使二維碼的數量是有限的,但是這個“有限的”二維碼數量對人類來說,仍然是一個相當龐大的數量!龐大到什么程度呢?從目前來看,二維碼的數量已經超過了宇宙的原子總數!下面給大家算一算這個賬,就能更直觀地了解二維碼的數量多少了。目前我們到底能生成多個可用的二維碼?以下的內容可能會比較抽象和專業,甚至有些內容不太好理解。所以建議大家只需要“知其然”,而沒有必要“知其所以然”,看個結論就行了。對于專業人士,也請不必挑刺,畢竟我也是外行,我盡自己所能理解的程度進行敘述。到目前為止,二維碼的正式版本已經有40個,即從V1-V40。不同的版本對應著不同的矩陣,不同的矩陣對應著不同的二維碼數量。版本1對應的矩陣為最小值,它是21*21的矩陣。而版本40對應的矩陣為最大值,它是177*177的矩陣。現在就來看看某個版本的二維碼矩陣能生成多少二維碼。我們以微信支付使用的25*25矩陣來計算一下。對于25*25矩陣,它每行有25個方塊,共25行,在去除矩陣中那些用于定位、冗余糾錯等的方塊之后,還剩下478個方塊。由于每個方塊可以有黑白兩種選擇,所以478個小方塊總共可以組成2^478(2的478次方)個二維碼。換句話說,光是25*25這個矩陣所能產生的二維碼,就已經和整個宇宙中總原子數量10^80(10的80次方)差不多了。這么多的二維碼,人類要用多少年才能用得完?如果計算一下,其結果又是一個天文數字,而且這還僅僅只是25*25的矩陣。目前所有的二維碼能用多久?其實答案已經非常明確了。不要說目前40個版本的二維碼了,就是一個25*25矩陣所能產生的二維碼,要想用完它也是不可能的。上面已經計算過了,這個矩陣所能產生的二維碼總數為2^478。我們就按提問者所說的,假設全世界每天消耗100億個二維碼,那么用完2^478個二維碼需要多長時間呢?簡單計算一下,這個數字就是2^478/100億,結果大約是7.806×10^133天。什么意思呢?也就是即使現在存在的這個宇宙滅亡了,全世界的人也不能可能用完25*25矩陣所能產生的二維碼。當然,也許有人會說,二維碼的使用量每天都在增加,而地球上的人口同樣也在增加,所以二維碼也許可以被用完。同樣不可能!我們上面舉的例子只是一個版本,然而現在的二維碼已經開發了40個版本,如果有需要,還可以繼續開發更多版本!所以,只管放心去掃二維碼吧,人類根本不可能把二維碼用完的。這下大家應該都明白了吧。從理論上說,二維碼的數量是“有限的”,如果人類的歷史可以“無限長”的話,是可能用完二維碼的。但實際上是不可能的,二維碼這個“有限的”數量也實在是太大了,人類根本不可能得完。假設二維碼會被用完,那么人們有沒有替代方案呢?雖然這個問題其實已經沒有回答的必要,不過為了滿足一下大家的好奇心,我還是再回答一下吧。說實話,真正的替代方案是沒有的,因為根本沒有必要。但是有些專業人士對此提出了一些有意思的設想,比如現在的二維碼只是“二維”的,而且只有黑白兩色。如果需要,我們可以把它變“三維碼“、“四維碼”甚至“五維碼”。顏色也可以從現在的兩種,變為三種、四種、五種等等。想想看,到時候你還想把這些“三維碼”、“四維碼”用完嗎?
其實,最簡單的辦法就是,按照二維碼取代條形碼的發展規律,也許用不了幾十年時間,人類又會開發出一種全新的存儲識別方式,到那時二維碼這種平面識別方式就被淘汰掉了,剩下的那些二維碼,就讓它們永遠保存在人類文明進步的歷史長河中吧。
最后說一下,這個問題其實過于專業,因此可能我的回答難免會存在錯誤或不恰當之處,還請各位朋友包涵。那些看上去非常大的數據,其實對我們日常生活來說根本沒有意義,大家只要理解它們所代表的意思就行了。至于二維碼的事情,大可不必操心,只管放心地刷,畢竟即使把二維碼刷完了,我們還會有“三維碼”、“四維碼”可以用不是。
(圖源網絡,侵權刪除)