1

二維碼就這么大一點(diǎn),每個(gè)格還只能是非黑即白,那它會(huì)不會(huì)被用掉所有排列組合呢

答案是會(huì),但是卻不會(huì),嗯,沒(méi)錯(cuò)

細(xì)心觀察會(huì)發(fā)現(xiàn),不同地方二維碼橫豎格數(shù)是不一定相同的(二維碼目前共有40種規(guī)格,最少21x21,一規(guī)格橫豎各加四個(gè)格子,最多加39次既177x177),以微信名片舉例,二維碼是橫豎各37個(gè)格的正方形,其中三個(gè)角有固定的7x7的定位點(diǎn),所以可用可以變換的點(diǎn)共有37x37-49x3=1222個(gè)格子,而每個(gè)格子只可能是黑或白兩種情況(電腦二進(jìn)制的0和1),所以共有2^1222種排列組合情況,既理論上可以出現(xiàn)這些個(gè)不同的二維碼(有全黑全白還有的中間會(huì)放商標(biāo)等圖形占位置等情況可能出現(xiàn)所以是理論上),2^1222的結(jié)果為

emmm~顯示不下出錯(cuò)了

不慌,用電腦算,

簡(jiǎn)單點(diǎn),2^1000出來(lái)是:

科學(xué)計(jì)數(shù)法:1.0715086071863 * 10^301

具體數(shù)字為:10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

根據(jù)美國(guó)人口調(diào)查局的估計(jì),截至到2013年1月4日,全世界有70.57億人,現(xiàn)在則會(huì)更多,算世界上共一百億人,平均每個(gè)人能分10^292個(gè)二維碼用還有大量剩余,比全宇宙中的粒子數(shù)3.28×10^80還要多的多,所以說(shuō),二維碼雖然是有限的,能用完。

但就算不考慮未來(lái)的新技術(shù),算的時(shí)候還為簡(jiǎn)而少算的,不同規(guī)格的二維碼還不重復(fù)又是急劇擴(kuò)大了可能情況數(shù),單單現(xiàn)在的個(gè)數(shù)就是有限也太多了,多到根本用不完。而且決定二維碼格數(shù)上限的是手機(jī)像素,目前最高可識(shí)別就能達(dá)到4000x4000+,而現(xiàn)在的二維碼最多也就144x144,且只有40個(gè)規(guī)格,這提升空間之大,再以后沒(méi)準(zhǔn)能用一張二維碼存?zhèn)電影,光盤變紙張(這個(gè)想過(guò)頭了,目前的二維碼存1M都是大的了)……

當(dāng)然這只是理論數(shù)值,而實(shí)際上二維碼并不只是個(gè)圖形而已,而是有特定意義的,這其中有大部分是雖然有排列情況但沒(méi)有意義(最明顯的,全黑,全白,還有很多是無(wú)法準(zhǔn)確表示人可能希望表示的任何情況,所以用不了),但除去這剩下的也夠多了。而既然二維碼是有特定意義的,那么反過(guò)來(lái)從另一個(gè)角度來(lái)看,每一個(gè)目的每一個(gè)要它表達(dá)的值都是不同的,都會(huì)形成一條特定編碼,所以這樣看二維碼仍是無(wú)限的。而且無(wú)意義的二維碼也可以人工賦予它人所希望的意義。

還有,那……條形碼不夠用的嗎

然而并不是主要的,而是因?yàn)槎S碼能儲(chǔ)存一維碼不能存的漢字、圖片等信息,以及二維碼相對(duì)于條形碼更能容錯(cuò)(不信可以找一個(gè)二維碼,然后蓋住一部分,再掃它,看看是不是并不影響掃描,有時(shí)蓋一半都能正常掃,原因是一般都用上了rs碼四級(jí)糾錯(cuò)),還有能加入保密措施,更安全,還有出錯(cuò)率低(掃二維碼還會(huì)出錯(cuò)?嗯,只是出錯(cuò)率太低,如果掃錯(cuò)了,趕緊馬上立刻,去買彩…不對(duì),買啥彩票,去抽波十連),還有尺寸大小可按比例隨意變(條形碼就只能在固定范圍內(nèi)細(xì)微變化,不然就掃不準(zhǔn),附,條形碼的標(biāo)準(zhǔn)尺寸是37.29mm x 26.26mm,放大倍率是0.8-2.0

還有還有,生成二維碼會(huì)不會(huì)生成重復(fù)的,就比如馬云的支付寶轉(zhuǎn)賬二維碼和我的碰巧生成了一樣的,然后……并不會(huì),二維碼上的黑白點(diǎn)排列并不是隨機(jī)無(wú)意義的,而是原始二進(jìn)制代碼,代表某一個(gè)意義,而不同的人的二維碼要它表示的意義讓它代表的事是不同的,所以不會(huì)有重復(fù)的。

異想天開(kāi)一波,我畫(huà)一個(gè),如果只是隨便畫(huà)一個(gè),還真的有可能能掃出來(lái),雖然更大幾率是畫(huà)出掃不出的無(wú)意義的二維碼,但掃出來(lái)干嘛,給不認(rèn)識(shí)的不知道誰(shuí)轉(zhuǎn)錢么……

為何電子設(shè)備中的二維碼是隨時(shí)變化的,支付寶->付錢(生成一個(gè)二維碼)->返回(那個(gè)二維碼幾分鐘后失效,時(shí)間不固定)->付錢(生成一個(gè)新的二維碼),既然二維碼是特定意義,那表示“加我好友”或者“關(guān)注我”的代碼不應(yīng)該是固定的嗎?也不是,現(xiàn)實(shí)中的特定意義在網(wǎng)絡(luò)數(shù)據(jù)中卻不是不變的,支付寶付款碼是“活碼”,活碼本身不是存儲(chǔ)的這個(gè)目的的碼,而是對(duì)一個(gè)分配的短網(wǎng)址進(jìn)行編碼,掃描后跳轉(zhuǎn)到這個(gè)網(wǎng)址。這樣將內(nèi)容存儲(chǔ)在云端,可以隨時(shí)更新、可跟蹤掃描統(tǒng)計(jì),可存放圖片視頻、大量文字內(nèi)容,同時(shí)圖案簡(jiǎn)單易掃。 缺點(diǎn)是掃描時(shí)必須聯(lián)網(wǎng)。而不變的是靜態(tài)碼,是直接對(duì)電話、地址、網(wǎng)址等信息進(jìn)行編碼(一般最多50個(gè)文字), 所以無(wú)需聯(lián)網(wǎng)也能掃描顯示,缺點(diǎn)是生成的二維碼圖案非常復(fù)雜,不容易識(shí)別和打印,容錯(cuò)率低,而且印刷后內(nèi)容無(wú)法變更,無(wú)法存儲(chǔ)圖片和文件

最佳貢獻(xiàn)者
2

全球每天消耗上百億個(gè)二維碼,一旦用完了怎么辦?

我們不清楚其他國(guó)家的生活和二維碼之間的關(guān)系,但至少在中國(guó),二維碼已經(jīng)和我們?nèi)粘=壴谝黄,我們很難想象一個(gè)離開(kāi)了二維碼的生活是什么樣子,萬(wàn)一二維碼用完了呢?

二維碼是誰(shuí)發(fā)明的?

二維碼種類很多,常見(jiàn)的有QR Code、Data Matrix、Code 16K、MaxiCode、Aztec、Vericode、PDF417、Code 49等,很多產(chǎn)品上都會(huì)貼上各種標(biāo)準(zhǔn)的二維碼,但我們?nèi)粘J褂玫模热绺鞣N支付碼格式是QR Code,所以來(lái)自國(guó)外的朋友會(huì)用QR Code來(lái)稱呼我們?nèi)粘J褂玫母鞣N支付碼!下文以QR CODE來(lái)說(shuō)明。

QR Code碼是1994年由日本DW公司發(fā)明的,它誕生后,就在信息量大,糾錯(cuò)能力強(qiáng)等優(yōu)點(diǎn)絕殺了二維碼,在日本和全世界應(yīng)用廣泛,我們?nèi)粘R惨呀?jīng)離不開(kāi)二維碼,平均每天都會(huì)掃碼數(shù)個(gè)甚至數(shù)十個(gè),而各種支付碼為保證安全是即時(shí)產(chǎn)生的,即用過(guò)一次即失效,下次重新產(chǎn)生,那么吃瓜群眾有一個(gè)問(wèn)題,會(huì)不會(huì)某天二維碼用完了呢?

QR CODE數(shù)據(jù)編碼方式

要說(shuō)明會(huì)不會(huì)用完,首先得來(lái)了解下QR CODE編碼方式,下圖是一張QR CODE基底圖,不含信息,僅僅表示編碼:

QR CODE最明顯的特征是除了右下角外其他三個(gè)角上是一個(gè)巨大的回字形定位標(biāo)志,其他主要的區(qū)域有數(shù)據(jù)與容錯(cuò),版本信息,糾正標(biāo)志等,包含QR CODE能不能用完的關(guān)鍵是數(shù)據(jù)編碼的排列組合能不能窮盡!一個(gè)QR CODE最大的能包含多少信息呢?

一張小小的二維碼搭載的信息量是驚人的,那么它所包含的組合總共可以有多少種呢?

QR CODE空白區(qū)域表示0,黑色區(qū)域表示1,那么數(shù)一數(shù)它最大面積的版本有多少格子就能算出它有多少種可能了!QR CODE總共有40種不同密度的結(jié)構(gòu):

最小的版本1編碼模塊為21×21,編碼數(shù)量總有:2^(21×21)

最大的版本40為177×177,編碼數(shù)量總共有:2^(177×177)碼

前者大約有5.6×10^132個(gè)編碼

后者大約有:9.3×10^9430個(gè)二維碼

可能大家對(duì)這個(gè)數(shù)量并沒(méi)啥概念,但宇宙中的原子數(shù)量總共之有10^80個(gè),所以即使是最小的的那個(gè)二維碼也可以給宇宙中每個(gè)原子編制一個(gè)二維碼,而且還綽綽有余!而更大的版本40則可以對(duì)所有的“平行宇宙”進(jìn)行編碼,也許還是編不完!

QR CODE的容錯(cuò)功能

從上文我們知道了QR CODE是用不完的,但QR CODE本身包含的信息量太大,而我們有又用不到這些新的時(shí)候就有新的玩法了,我們可以將容錯(cuò)信息編制進(jìn)去,當(dāng)QR CODE污損時(shí)將會(huì)起到糾錯(cuò)作用!

從7%到30%不等,但糾錯(cuò)效果越好,面積也將越大,所以大部分都取折中的15%糾錯(cuò)率,優(yōu)點(diǎn)類似于服務(wù)器中硬盤陣列,犧牲容量的方式來(lái)保證數(shù)據(jù)的安全性,如下是硬盤陣列的容錯(cuò)比例:

RAID0:無(wú)容錯(cuò),可靠性降低一半

RAID1:可以損壞一半硬盤

RAID5,可以損壞一個(gè)硬盤

RAID10,可以損壞一半硬盤(理想狀態(tài)下)

當(dāng)然硬盤陣列的的容錯(cuò)和QR CODE容錯(cuò)原理是不一樣的,但兩者宗旨是一樣的,保證數(shù)據(jù)安全!

QR CODE的安全性

其實(shí)我們要說(shuō)的不是加密,而是包含有害信息,因?yàn)樗请[含的信息,因此即使包含有害信息我們也無(wú)法看到,比如包含欺騙、誘導(dǎo)或者淫穢色情甚至木馬等信息時(shí)危害是很大的,因此對(duì)于來(lái)歷不明的二維碼我們要謹(jǐn)慎“掃一掃”,而且手機(jī)上安全軟件不要忘了裝!

3

二維碼最初由日本的一個(gè)程序員所發(fā)明,跟傳統(tǒng)的條形碼相比,二維碼相當(dāng)于是二維化的條形碼,二維碼的數(shù)量是有限的,有人說(shuō)全球每天消耗上百億個(gè)二維碼,那么二維碼會(huì)有用完的一天嗎?

二維碼的出現(xiàn)極大地方便了人們的生活,別的不說(shuō),光就我們每一天使用的二維碼支付,就大大提高了購(gòu)物的速率。而我們每天使用的二維碼,每隔一段時(shí)間都是會(huì)不停地變化的,隨機(jī)進(jìn)行黑白組合。仔細(xì)看二維碼你可以發(fā)現(xiàn),在二維碼中有三個(gè)比較大的點(diǎn),而這三個(gè)點(diǎn)是用來(lái)定位的,不論你是正面掃描還是傾斜掃描,或者旋轉(zhuǎn)180°掃描,都可以掃描出二維碼來(lái)。

二維碼最初是彩色的,后來(lái)為了提升效率,改進(jìn)成了黑白色,二維碼采用特定的幾何圖形,將黑白相間的圖形有規(guī)律地分布在二維平面內(nèi),其中白色的塊代表數(shù)字“0”,黑色的塊代表數(shù)字“1”,這是為了便于計(jì)算機(jī)的識(shí)別。二維碼上有不同的區(qū)域,每一個(gè)區(qū)域標(biāo)志著不同的信息。二維碼的組合方式雖然有限,但是這也是一個(gè)天文數(shù)字,根本不用擔(dān)心某一天它會(huì)被用完。

二維碼的組合數(shù)量跟二維碼自身的像素密集點(diǎn)有關(guān),簡(jiǎn)而言之,像素越高,那么二維碼的組合數(shù)量就會(huì)越多。目前的二維碼中,最大的二維碼格式是V40,擁有177×177個(gè)像素點(diǎn),那么這么多的像素點(diǎn),能夠形成的所有二維碼的數(shù)目是多少呢?這是一個(gè)很容易計(jì)算的問(wèn)題,也就是2^(177×177)個(gè),差不多是10的10000次方,這還只是V40格式的二維碼組合數(shù)量,如果算上V1到V39的,恐怕還要多上不少。

所以說(shuō),即使地球上每天消耗上百億個(gè)二維碼,那么等到二維碼用完,恐怕到宇宙滅亡的那一天都不可能,更不用說(shuō)了,二維碼的像素密集點(diǎn)還可以進(jìn)一步擴(kuò)展,而一旦進(jìn)一步擴(kuò)展的話,數(shù)量又是呈幾何爆炸式增長(zhǎng)。所以結(jié)論是,二維碼雖然數(shù)量有限,但是根本就是用不完的,二維碼有廣泛的用途,它已經(jīng)成為了生活必不可少的一部分,二維碼的容量巨大,不用擔(dān)心哪天被用完或者是不夠用。

4

    二維碼是有限的,但是用不完。


    二維碼的數(shù)量

    做個(gè)計(jì)算題。目前,最大的二維碼格式是V40,177*177個(gè)像素,有2^(177*177)這么多組合,大約是10的10000次方不同信息組合,算上V1~V39格式的二維碼,那么二維碼最多有10的12000次方。


    與銀河系相比:銀河系的總質(zhì)量是10^41千克,那么所有的二維碼都用上,全銀河系的每千克物質(zhì),可以包含10^900個(gè)二維碼。


    與地球相比:地球的總體積是10^12立方千米,也就是10^29立方厘米,一立方厘米相當(dāng)于一塊橡皮那么大,所有的二維碼都用上,那么地球每一立方厘米有10^800個(gè)不同的二維碼。


    結(jié)論,二維碼數(shù)量有限,但是根本用不完。

    科普二維碼

    二維碼是在1994年,一家日本的公司發(fā)明的,最開(kāi)始是彩色的,用戶追蹤旗下公司零部件的維修情況,后來(lái)為了提升效率,改進(jìn)成黑白色。


    二維碼采用特定的幾何圖形,將黑白相見(jiàn)的圖形有規(guī)律的分布在二維反向上,其中白塊表示“0”,黑塊表示“1”,便于計(jì)算機(jī)識(shí)別。


    在二維碼上有不同的區(qū)域,標(biāo)識(shí)不同的信息,比如對(duì)齊模式、定時(shí)模式、安靜區(qū)域、版本信息、數(shù)據(jù)單元等。


    總之,二維碼有廣泛的用途,可以用來(lái)記錄信息和傳遞信息,并且具有唯一性,常見(jiàn)的用途有手機(jī)支付、信息獲取、網(wǎng)站跳轉(zhuǎn)、防偽溯源、會(huì)員管理等,二維碼應(yīng)用到了人們的方方面面,成為生活中不可獲取的一部分。二維碼的容量巨大,不用擔(dān)心哪天被用完或者不夠用。

如果覺(jué)得對(duì)你有幫助,可以多多點(diǎn)贊哦,也可以隨手點(diǎn)個(gè)關(guān)注哦,謝謝。

5

“極客談科技”,全新視角、全新思路,伴您遨游神奇的科技世界。

隨著移動(dòng)支付的快速發(fā)展,電子錢包快速發(fā)展,據(jù)統(tǒng)計(jì)每10個(gè)中國(guó)人里就會(huì)有8個(gè)使用移動(dòng)支付。移動(dòng)支付中離不開(kāi)的就是二維碼,全球每天將會(huì)消耗上百億個(gè)二維碼。不禁會(huì)令人產(chǎn)生擔(dān)憂,二維碼是否會(huì)同我們的IPV4地址一樣,面臨枯竭的問(wèn)題呢?


關(guān)于二維碼是否會(huì)存在枯竭的問(wèn)題

先給出答案再慢慢解釋,即便每天百億的消耗,二維碼的數(shù)量足夠支撐至下代技術(shù)出現(xiàn)之前的正常運(yùn)轉(zhuǎn)。這一切源于二維碼的設(shè)計(jì)方式,包含了足夠多的數(shù)量。

二維碼的編碼方式有很多種,但是具體的實(shí)現(xiàn)原理大同小異。利用某個(gè)區(qū)域黑白色塊標(biāo)識(shí)不同的信息,意味著二維碼同樣使用的是2進(jìn)制,非黑即白!除了常規(guī)的數(shù)據(jù)區(qū)域外,編碼上還包含各種格式信息、版本信息、控制信息、校驗(yàn)信息等,二維碼的計(jì)數(shù)是要排除該部分信息。即便如此,二維碼的數(shù)量依然較為龐大。

因?yàn)槎S碼編碼方式有很多種,很難確定二維碼支持的最高數(shù)量(受到硬件像素制約,后面會(huì)提及)。我們簡(jiǎn)單舉個(gè)例子,假設(shè)使用矩陣式二維碼,并且橫豎之間只支持20個(gè)像素點(diǎn)(實(shí)際情況遠(yuǎn)遠(yuǎn)多于20個(gè)像素點(diǎn))。那么,會(huì)包含多少個(gè)二維碼呢?2^400個(gè)二維碼。

這里大家可能并沒(méi)有一個(gè)明確的概念,看看我們?nèi)f物互聯(lián)的IPV6是多少個(gè)地址吧!2^128,即可實(shí)現(xiàn)我們身邊每件設(shè)備的互聯(lián)。那么,二維碼數(shù)量的恐怖您也該有所體會(huì)。2^400這個(gè)數(shù)字是否是二維碼的極限呢?不是,這里僅僅是為了便于理解所列舉的一個(gè)小例子。

二維碼的數(shù)量與我們硬件掃描的設(shè)備有關(guān),硬件設(shè)備能力越強(qiáng)二維碼的數(shù)量也就越多。例如我們二維碼使用800*800的像素規(guī)格,那么支持的地址就是2^640000。這里是指數(shù)級(jí)的增長(zhǎng),并非是簡(jiǎn)單的翻倍,可以說(shuō)這是一個(gè)相當(dāng)恐怖的數(shù)據(jù)。試想,硬件的提升,這個(gè)像素點(diǎn)若提升至4800*4800又該如何呢?您還會(huì)擔(dān)心二維碼不夠使用的問(wèn)題嗎?


關(guān)于二維碼地址是否會(huì)枯竭的問(wèn)題,您怎么看?

歡迎大家留言討論,喜歡的點(diǎn)點(diǎn)關(guān)注。


6

如果明白了二維碼的原理,就不會(huì)有是否會(huì)用完這樣的疑問(wèn)。

手機(jī)號(hào)碼、車牌號(hào)、IP地址等,就有被用完的可能性。原因在于它們不允許重復(fù)。而類似姓名、網(wǎng)上昵稱、個(gè)性簽名等等,則允許重復(fù),所以永遠(yuǎn)也不會(huì)用完。比如現(xiàn)在一大堆人姓名是張偉、李子涵等。

注意:二維碼是允許重復(fù)的。

二維碼看上去顯得很神秘,事實(shí)上它只不過(guò)就代表一串文字(多數(shù)情況下,99%如此,下邊的討論不再注明),在整個(gè)過(guò)程中,也沒(méi)有用到加密技術(shù)。比方說(shuō)下面這個(gè)二維碼,就是“犍為真人”四個(gè)漢字。

這么花里胡哨的一張二維碼,就完全等同于文字“犍為真人”。那么問(wèn)題來(lái)了,既然完全等同,為什么不直接用文字呢?這就涉及到打字的辛苦。打字速度再快,也是需要花時(shí)間的,4個(gè)字還好,如果400個(gè)呢?另外,像11位手機(jī)號(hào),我們打字的時(shí)候都要反復(fù)對(duì)照幾遍,還不保證一定正確不粗心。于是二維碼就發(fā)明了,它主要針對(duì)手機(jī)、平板。二維碼目的就是用來(lái)復(fù)制一串文字,避免打字錄入。比方說(shuō),我要給你一個(gè)手機(jī)號(hào)(比如海報(bào),廣告),以前要把手機(jī)號(hào)打印在紙上,你照著一個(gè)一個(gè)輸入,F(xiàn)在,我把手機(jī)號(hào)轉(zhuǎn)換成二維碼打印到紙上,你用手機(jī)對(duì)著紙上的二維碼掃一掃,直接就識(shí)別出來(lái)11位數(shù)字。

當(dāng)我們用手機(jī)掃二維碼時(shí),會(huì)啟動(dòng)手機(jī)的自動(dòng)識(shí)別程序,將圖片識(shí)別成一串文字,于是就輕松實(shí)現(xiàn)了類似電腦復(fù)制粘貼的功能。說(shuō)得更直白一點(diǎn),假設(shè)未來(lái)圖像識(shí)別技術(shù)非常發(fā)達(dá),那么二維碼可能就慢慢消失了,因?yàn)橹苯訏呶淖志涂梢粤。也就是說(shuō),那時(shí)候我把上面那張二維碼圖換成醒目的“犍為真人”四個(gè)大字,是完全沒(méi)有區(qū)別的。

那么為什么現(xiàn)階段二維碼可以輕松識(shí)別?那就是因?yàn)樗玫搅颂厥獾模槍?duì)計(jì)算機(jī)(手機(jī)也是計(jì)算機(jī))攝像頭的算法,天生就是給計(jì)算機(jī)看的。這就好比,盲人看(摸)普通文字很費(fèi)勁,他們用盲文。相反普通人看盲文又覺(jué)得是“讀天書(shū)”。

大家都知道,計(jì)算機(jī)用二進(jìn)制表示信息。二維碼的那些黑白方塊就是二進(jìn)制。黑色代表1白色代表0。黑白必須對(duì)比清晰,然后攝像頭拍照后轉(zhuǎn)換成010101這樣的二進(jìn)制。之后用較復(fù)雜的解碼算法轉(zhuǎn)換成文字。

算法中最復(fù)雜的設(shè)計(jì)就是糾錯(cuò)。意思是說(shuō),即使識(shí)別錯(cuò)了一部分黑白塊,依然可以成功解碼。舉個(gè)人類識(shí)別的例子。比方“38”這樣的文字形式就不合理,因?yàn)槿菀装?錯(cuò)誤判別成8。而“三八”,“叁捌”就很好。而且即使這樣的文字被遮擋一部分或很模糊,依然可以被人類辨別。這就叫“糾錯(cuò)”或“容錯(cuò)”。除了糾錯(cuò),二維碼還涉及到定位參考,掩碼等技術(shù)。這里就不再展開(kāi)介紹。

我們?cè)賮?lái)看看二維碼的容量到底有多大。在國(guó)內(nèi),二維碼多數(shù)用的都是QR碼。QR碼最多能表示7089個(gè)純數(shù)字,或者4276個(gè)字母(形如網(wǎng)址的字符),或者2953字節(jié)的二進(jìn)制(相當(dāng)于2.9KB)。還有日文中文等最多表示數(shù)就不再列出。

已經(jīng)足夠多了!

而我們平常見(jiàn)到的二維碼,最多的就是網(wǎng)址,其次是純數(shù)字。比如微信掃碼支付(商家掃你),公交地鐵掃碼,共享單車掃碼,火車票實(shí)際上代表的就是一堆純數(shù)字。而關(guān)注公眾號(hào),微信支付(你掃商家),就是一個(gè)網(wǎng)址。這些數(shù)字或二維碼,通常長(zhǎng)度還不到30位。

再?gòu)?qiáng)調(diào)一下,二維碼多數(shù)時(shí)候僅僅就代表一串文字。比方說(shuō)你掃商家的二維碼,實(shí)際上就是一個(gè)網(wǎng)址。這時(shí)候,你自己在微信瀏覽器中手打輸入這個(gè)網(wǎng)址,然后打開(kāi),效果是一樣的(彈出一個(gè)輸入金額的畫(huà)面)。區(qū)別就是手打網(wǎng)址,要打半天字浪費(fèi)時(shí)間,還容易輸錯(cuò)。

明白了這些道理,就知道了二維碼是用不完的。一方面,二維碼允許重復(fù)。另一方面,二維碼幾千的最大容量,足夠表示日常的網(wǎng)址和數(shù)字編碼。

7

二維碼是在水平和垂直方向上進(jìn)行信息編寫(xiě)的,有著更強(qiáng)的多級(jí)糾錯(cuò)能力和識(shí)讀能力,儲(chǔ)存容量遠(yuǎn)超一維碼。最低格式的二維碼是21x21格式,共有441個(gè)格子,每個(gè)格子只有黑或白兩種選擇,再減去二維碼固定數(shù)量的192個(gè)角落的定位框。理論上,21x21格式的二維碼有2的249次方種組合,這個(gè)數(shù)字有75位。

按照國(guó)人每天掃碼15億次計(jì)算,需要1600000億億億億億億億年才能掃盡(7個(gè)“億”),而地球至今才只有46億年,宇宙138億年,宇宙預(yù)期剩余壽命1400億年。

所以完全不用擔(dān)心二維碼刷完,刷到?菔癄,宇宙毀滅都刷不完,然而這還只是以21x21最小規(guī)格來(lái)計(jì)算的,最大177x177規(guī)格的二維碼,難以想象這個(gè)數(shù)字有多恐怖。

然而,原昌宏及其公司當(dāng)初想做的只是一種二維碼的公司內(nèi)部管理體系,并未想到背后還有如此巨大的商業(yè)價(jià)值,所以當(dāng)初放棄了對(duì)二維碼專利費(fèi)的索取。

若每人使用一次二維碼就繳納1分錢的專利費(fèi),原昌宏早就可以躺在家里數(shù)錢了。

8

再了解二維碼數(shù)量之前,我們先了解二維碼的原理。

二維碼的原理

二維碼其實(shí)就是由0、1組成的二進(jìn)制,我們看到的二維碼每個(gè)方塊,都有意義,其中白色的方塊代表0,黑色方塊代表1。

而我們?nèi)粘S玫谋容^常見(jiàn)的是37*37的格子,其中三個(gè)角都有一個(gè)固定的方塊,這個(gè)方塊的大小是固定的,是用于識(shí)別時(shí),方便定位二維碼防線的用途。大小有7*7個(gè)像素點(diǎn)。

所以,37*37的二維碼格子,可以產(chǎn)生37x37-49x3=1222個(gè)格子,又因?yàn)槊總(gè)格子僅僅代表0或1兩種情況,因此,共有2^1222種排列組合情況,也就是說(shuō),一個(gè)37*37的二維碼格子,可以產(chǎn)生2^1222個(gè)二維碼。

可能這樣說(shuō),大家沒(méi)概念,我們可以和全世界的人口做個(gè)對(duì)比,根據(jù)世界人口時(shí)鐘比較,截止到2019年10月20號(hào)下午3點(diǎn)13分,目前全世界人口大概為7744402531人(77.44億人),如果想要用完所有的二維碼,大概每個(gè)人需要用完10^(292)個(gè),并且還有非常多的剩余。

還有,我們宇宙中有非常多的基本粒子,甚至每個(gè)人體內(nèi)都有上萬(wàn)億個(gè)中微子穿過(guò),由此可知宇宙中的粒子數(shù)是多么的恐怖。據(jù)科學(xué)家推算,全宇宙中的粒子數(shù)大概有3.28×10^80(肯定有誤差,這已經(jīng)是非常保守的估計(jì)),而二維碼比全宇宙中所有的粒子加起來(lái)還要多。

由此可見(jiàn),二維碼雖然是有限多的,但卻用不完。

而37*37的二維碼只是其中一種,還有40*40,21*21等40多種規(guī)格,因此不用擔(dān)心二維碼被消耗完的問(wèn)題。

識(shí)別二維碼的原理

二維碼雖然在人類看來(lái)像天書(shū)一樣,并且每個(gè)二維碼看起來(lái)都差不多,但在機(jī)器眼里,每個(gè)二維碼都不相同。

首先白色之所以是白色,是因?yàn)樗芊瓷涓鞣N波長(zhǎng)的可見(jiàn)光,而黑色則相反,能吸收所有波長(zhǎng)的可見(jiàn)光。所以當(dāng)機(jī)器在靠近二維碼并識(shí)別時(shí),機(jī)器會(huì)根據(jù)不同的波長(zhǎng)判斷這個(gè)格子是白色還是黑色。

由于黑色和白色代表著不同的數(shù)字“0”“1”,所以機(jī)器也會(huì)自動(dòng)識(shí)別出這個(gè)二維碼不同的排列方式,其實(shí)還要注意一點(diǎn),機(jī)器在識(shí)別圖形時(shí),會(huì)由于各種原因出現(xiàn)差錯(cuò),而二維碼之所以很少出錯(cuò)是因?yàn)樗陨韮?chǔ)存一定容量的糾錯(cuò)率。

比如我說(shuō):“我有一個(gè)蘋(píng)果”,當(dāng)你聽(tīng)錯(cuò)一個(gè)字之后,你可能會(huì)誤解我的意思,但如果我說(shuō):“我有一個(gè)蘋(píng)果,英文名叫apple,喬布斯用它做手機(jī)的名字....”等等,看似一大堆的廢話,你再識(shí)別我的信息時(shí),就很難出錯(cuò)了。二維碼也有一些方格,對(duì)應(yīng)的是這些廢話,防止識(shí)別錯(cuò)誤。其實(shí)這也是信息學(xué)的香農(nóng)第三定理。

當(dāng)機(jī)器識(shí)別出二維碼不同的排列方式之后,然后就會(huì)像我們打開(kāi)網(wǎng)頁(yè)一樣,每個(gè)不同的排列方式,對(duì)應(yīng)著不同的“網(wǎng)頁(yè)”,而這個(gè)網(wǎng)頁(yè)被人們提前編撰過(guò)信息,所以識(shí)別出這個(gè)“網(wǎng)頁(yè)”時(shí),對(duì)應(yīng)的信息也會(huì)被識(shí)別出來(lái)。

因此,二維碼不僅能包含簡(jiǎn)單的價(jià)格,也可以包含一個(gè)網(wǎng)頁(yè),一個(gè)自我介紹,一份簡(jiǎn)歷等等任何你想輸入進(jìn)去的東西。

9

答:二維碼數(shù)量雖然是有限的,但是多到用不完,永遠(yuǎn)也用不完。


二維碼原理

二維碼發(fā)明于1994年,相對(duì)于一維的條形碼,二維碼具有更大的容量;二維碼本質(zhì)上就是一個(gè)矩陣,在常見(jiàn)的二維碼中,白色色塊表示“0”,黑色色塊表示“1”,經(jīng)過(guò)掃描器讀取后的二維碼就成了一段特殊的代碼,計(jì)算機(jī)從而識(shí)別出代碼中的有效信息。

二維碼的數(shù)量

二維碼能表示的數(shù)量和二維碼自身的像素有關(guān),像素越高,二維碼表示的數(shù)量成指數(shù)增長(zhǎng),但是讀取二維碼和掃描器的像素有關(guān),在各種二維碼當(dāng)中,我們常用的編碼方式是QR Code,目前該編碼方式用到最大的像素為177*177=31329像素,那么理論上,該編碼方式的組合數(shù)量為:

2^(177*177)≈10^20000;

這是一個(gè)非常巨大的數(shù)值,哪怕全球人口有1000億,每人每秒鐘消耗1億個(gè)二維碼,即便從宇宙大爆炸開(kāi)始至今(138億年)一直在使用,也就消耗了4.35*10^36個(gè)二維碼,遠(yuǎn)遠(yuǎn)低于177*177像素的二維碼數(shù)量,更何況二維碼的像素是可以繼續(xù)擴(kuò)展的。

實(shí)際上,二維碼有些固定信息以及糾錯(cuò)碼,所以固定像素的二維碼數(shù)量要低于理論值,但是數(shù)量也多到用不完,而且平常我們也用不到177*177這么高像素的二維碼。


生活中的二維碼

平常我們用得最多的就是支付二維碼,每張二維碼里面,其實(shí)包含了你的支付平臺(tái)、賬戶信息、支付金額和時(shí)間等等,你換一張支付碼,其中的數(shù)據(jù)跟著變化,但是信息所占長(zhǎng)度未變,時(shí)間隨時(shí)都在變化沒(méi)有終點(diǎn),所以屬于你的支付碼是用不完的。


我的內(nèi)容就到這里,喜歡我們文章的讀者朋友,記得點(diǎn)擊關(guān)注我們——艾伯史密斯!

10

這個(gè)問(wèn)得太不專業(yè)了,能否用完我不清楚,但是有個(gè)叫"協(xié)議"的東西你沒(méi)有弄清楚。二維碼怎么使用只跟對(duì)應(yīng)的APP所定義的內(nèi)部協(xié)議有關(guān)。打個(gè)比較極限的比方。比如某一個(gè)二維碼掃出來(lái)的是二進(jìn)制類容“110”。用某服務(wù)APP掃出來(lái),可能指的是110報(bào)警電話。用某公交APP掃描,顯示的是110路公交車的信息,支付寶掃描出來(lái)的意思是付款110塊,微信掃描出來(lái)的意思是收款110塊,等等,這都是可以的。所以掃描出來(lái)的二維碼的內(nèi)容該怎么用,由掃描的APP里面的程序代碼決定怎么使用(即APP自己定義的內(nèi)部協(xié)議規(guī)定)。

再打個(gè)淺顯的比方,同樣是21路公交車,北京的21路,和上海的21路公交車,能一樣么?有沖突么?顯然沒(méi)有。同樣是21路,該怎么用,由各地決定,互不沖突。

因此,就算用完了 ,出現(xiàn)重復(fù),也不影響使用,只要是同一使用協(xié)議內(nèi)不重復(fù)就沒(méi)有關(guān)系。

你的回答

單擊“發(fā)布您的答案”,即表示您同意我們的服務(wù)條款