1

二维码就这么大一点,每个格还只能是非黑即白,那它会不会被用掉所有排列组合呢

答案是会,但是却不会,嗯,没错

细心观察会发现,不同地方二维码横竖格数是不一定相同的(二维码目前共有40种规格,最少21x21,一规格横竖各加四个格子,最多加39次既177x177),以微信名片举例,二维码是横竖各37个格的正方形,其中三个角有固定的7x7的定位点,所以可用可以变换的点共有37x37-49x3=1222个格子,而每个格子只可能是黑或白两种情况(电脑二进制的0和1),所以共有2^1222种排列组合情况,既理论上可以出现这些个不同的二维码(有全黑全白还有的中间会放商标等图形占位置等情况可能出现所以是理论上),2^1222的结果为

emmm~显示不下出错了

不慌,用电脑算,

简单点,2^1000出来是:

科学计数法:1.0715086071863 * 10^301

具体数字为:10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376

根据美国人口调查局的估计,截至到2013年1月4日,全世界有70.57亿人,现在则会更多,算世界上共一百亿人,平均每个人能分10^292个二维码用还有大量剩余,比全宇宙中的粒子数3.28×10^80还要多的多,所以说,二维码虽然是有限的,能用完。

但就算不考虑未来的新技术,算的时候还为简而少算的,不同规格的二维码还不重复又是急剧扩大了可能情况数,单单现在的个数就是有限也太多了,多到根本用不完。而且决定二维码格数上限的是手机像素,目前最高可识别就能达到4000x4000+,而现在的二维码最多也就144x144,且只有40个规格,这提升空间之大,再以后没准能用一张二维码存个电影,光盘变纸张(这个想过头了,目前的二维码存1M都是大的了)……

当然这只是理论数值,而实际上二维码并不只是个图形而已,而是有特定意义的,这其中有大部分是虽然有排列情况但没有意义(最明显的,全黑,全白,还有很多是无法准确表示人可能希望表示的任何情况,所以用不了),但除去这剩下的也够多了。而既然二维码是有特定意义的,那么反过来从另一个角度来看,每一个目的每一个要它表达的值都是不同的,都会形成一条特定编码,所以这样看二维码仍是无限的。而且无意义的二维码也可以人工赋予它人所希望的意义。

还有,那……条形码不够用的吗

然而并不是主要的,而是因为二维码能储存一维码不能存的汉字、图片等信息,以及二维码相对于条形码更能容错(不信可以找一个二维码,然后盖住一部分,再扫它,看看是不是并不影响扫描,有时盖一半都能正常扫,原因是一般都用上了rs码四级纠错),还有能加入保密措施,更安全,还有出错率低(扫二维码还会出错?嗯,只是出错率太低,如果扫错了,赶紧马上立刻,去买彩…不对,买啥彩票,去抽波十连),还有尺寸大小可按比例随意变(条形码就只能在固定范围内细微变化,不然就扫不准,附,条形码的标准尺寸是37.29mm x 26.26mm,放大倍率是0.8-2.0

还有还有,生成二维码会不会生成重复的,就比如马云的支付宝转账二维码和我的碰巧生成了一样的,然后……并不会,二维码上的黑白点排列并不是随机无意义的,而是原始二进制代码,代表某一个意义,而不同的人的二维码要它表示的意义让它代表的事是不同的,所以不会有重复的。

异想天开一波,我画一个,如果只是随便画一个,还真的有可能能扫出来,虽然更大几率是画出扫不出的无意义的二维码,但扫出来干嘛,给不认识的不知道谁转钱么……

为何电子设备中的二维码是随时变化的,支付宝->付钱(生成一个二维码)->返回(那个二维码几分钟后失效,时间不固定)->付钱(生成一个新的二维码),既然二维码是特定意义,那表示“加我好友”或者“关注我”的代码不应该是固定的吗?也不是,现实中的特定意义在网络数据中却不是不变的,支付宝付款码是“活码”,活码本身不是存储的这个目的的码,而是对一个分配的短网址进行编码,扫描后跳转到这个网址。这样将内容存储在云端,可以随时更新、可跟踪扫描统计,可存放图片视频、大量文字内容,同时图案简单易扫。 缺点是扫描时必须联网。而不变的是静态码,是直接对电话、地址、网址等信息进行编码(一般最多50个文字), 所以无需联网也能扫描显示,缺点是生成的二维码图案非常复杂,不容易识别和打印,容错率低,而且印刷后内容无法变更,无法存储图片和文件

最佳贡献者
2

全球每天消耗上百亿个二维码,一旦用完了怎么办?

我们不清楚其他国家的生活和二维码之间的关系,但至少在中国,二维码已经和我们日常绑在一起,我们很难想象一个离开了二维码的生活是什么样子,万一二维码用完了呢?

二维码是谁发明的?

二维码种类很多,常见的有QR Code、Data Matrix、Code 16K、MaxiCode、Aztec、Vericode、PDF417、Code 49等,很多产品上都会贴上各种标准的二维码,但我们日常使用的,比如各种支付码格式是QR Code,所以来自国外的朋友会用QR Code来称呼我们日常使用的各种支付码!下文以QR CODE来说明。

QR Code码是1994年由日本DW公司发明的,它诞生后,就在信息量大,纠错能力强等优点绝杀了二维码,在日本和全世界应用广泛,我们日常也已经离不开二维码,平均每天都会扫码数个甚至数十个,而各种支付码为保证安全是即时产生的,即用过一次即失效,下次重新产生,那么吃瓜群众有一个问题,会不会某天二维码用完了呢?

QR CODE数据编码方式

要说明会不会用完,首先得来了解下QR CODE编码方式,下图是一张QR CODE基底图,不含信息,仅仅表示编码:

QR CODE最明显的特征是除了右下角外其他三个角上是一个巨大的回字形定位标志,其他主要的区域有数据与容错,版本信息,纠正标志等,包含QR CODE能不能用完的关键是数据编码的排列组合能不能穷尽!一个QR CODE最大的能包含多少信息呢?

一张小小的二维码搭载的信息量是惊人的,那么它所包含的组合总共可以有多少种呢?

QR CODE空白区域表示0,黑色区域表示1,那么数一数它最大面积的版本有多少格子就能算出它有多少种可能了!QR CODE总共有40种不同密度的结构:

最小的版本1编码模块为21×21,编码数量总有:2^(21×21)

最大的版本40为177×177,编码数量总共有:2^(177×177)码

前者大约有5.6×10^132个编码

后者大约有:9.3×10^9430个二维码

可能大家对这个数量并没啥概念,但宇宙中的原子数量总共之有10^80个,所以即使是最小的的那个二维码也可以给宇宙中每个原子编制一个二维码,而且还绰绰有余!而更大的版本40则可以对所有的“平行宇宙”进行编码,也许还是编不完!

QR CODE的容错功能

从上文我们知道了QR CODE是用不完的,但QR CODE本身包含的信息量太大,而我们有又用不到这些新的时候就有新的玩法了,我们可以将容错信息编制进去,当QR CODE污损时将会起到纠错作用!

从7%到30%不等,但纠错效果越好,面积也将越大,所以大部分都取折中的15%纠错率,优点类似于服务器中硬盘阵列,牺牲容量的方式来保证数据的安全性,如下是硬盘阵列的容错比例:

RAID0:无容错,可靠性降低一半

RAID1:可以损坏一半硬盘

RAID5,可以损坏一个硬盘

RAID10,可以损坏一半硬盘(理想状态下)

当然硬盘阵列的的容错和QR CODE容错原理是不一样的,但两者宗旨是一样的,保证数据安全!

QR CODE的安全性

其实我们要说的不是加密,而是包含有害信息,因为它是隐含的信息,因此即使包含有害信息我们也无法看到,比如包含欺骗、诱导或者淫秽色情甚至木马等信息时危害是很大的,因此对于来历不明的二维码我们要谨慎“扫一扫”,而且手机上安全软件不要忘了装!

3

二维码最初由日本的一个程序员所发明,跟传统的条形码相比,二维码相当于是二维化的条形码,二维码的数量是有限的,有人说全球每天消耗上百亿个二维码,那么二维码会有用完的一天吗?

二维码的出现极大地方便了人们的生活,别的不说,光就我们每一天使用的二维码支付,就大大提高了购物的速率。而我们每天使用的二维码,每隔一段时间都是会不停地变化的,随机进行黑白组合。仔细看二维码你可以发现,在二维码中有三个比较大的点,而这三个点是用来定位的,不论你是正面扫描还是倾斜扫描,或者旋转180°扫描,都可以扫描出二维码来。

二维码最初是彩色的,后来为了提升效率,改进成了黑白色,二维码采用特定的几何图形,将黑白相间的图形有规律地分布在二维平面内,其中白色的块代表数字“0”,黑色的块代表数字“1”,这是为了便于计算机的识别。二维码上有不同的区域,每一个区域标志着不同的信息。二维码的组合方式虽然有限,但是这也是一个天文数字,根本不用担心某一天它会被用完。

二维码的组合数量跟二维码自身的像素密集点有关,简而言之,像素越高,那么二维码的组合数量就会越多。目前的二维码中,最大的二维码格式是V40,拥有177×177个像素点,那么这么多的像素点,能够形成的所有二维码的数目是多少呢?这是一个很容易计算的问题,也就是2^(177×177)个,差不多是10的10000次方,这还只是V40格式的二维码组合数量,如果算上V1到V39的,恐怕还要多上不少。

所以说,即使地球上每天消耗上百亿个二维码,那么等到二维码用完,恐怕到宇宙灭亡的那一天都不可能,更不用说了,二维码的像素密集点还可以进一步扩展,而一旦进一步扩展的话,数量又是呈几何爆炸式增长。所以结论是,二维码虽然数量有限,但是根本就是用不完的,二维码有广泛的用途,它已经成为了生活必不可少的一部分,二维码的容量巨大,不用担心哪天被用完或者是不够用。

4

    二维码是有限的,但是用不完。


    二维码的数量

    做个计算题。目前,最大的二维码格式是V40,177*177个像素,有2^(177*177)这么多组合,大约是10的10000次方不同信息组合,算上V1~V39格式的二维码,那么二维码最多有10的12000次方。


    与银河系相比:银河系的总质量是10^41千克,那么所有的二维码都用上,全银河系的每千克物质,可以包含10^900个二维码。


    与地球相比:地球的总体积是10^12立方千米,也就是10^29立方厘米,一立方厘米相当于一块橡皮那么大,所有的二维码都用上,那么地球每一立方厘米有10^800个不同的二维码。


    结论,二维码数量有限,但是根本用不完。

    科普二维码

    二维码是在1994年,一家日本的公司发明的,最开始是彩色的,用户追踪旗下公司零部件的维修情况,后来为了提升效率,改进成黑白色。


    二维码采用特定的几何图形,将黑白相见的图形有规律的分布在二维反向上,其中白块表示“0”,黑块表示“1”,便于计算机识别。


    在二维码上有不同的区域,标识不同的信息,比如对齐模式、定时模式、安静区域、版本信息、数据单元等。


    总之,二维码有广泛的用途,可以用来记录信息和传递信息,并且具有唯一性,常见的用途有手机支付、信息获取、网站跳转、防伪溯源、会员管理等,二维码应用到了人们的方方面面,成为生活中不可获取的一部分。二维码的容量巨大,不用担心哪天被用完或者不够用。

如果觉得对你有帮助,可以多多点赞哦,也可以随手点个关注哦,谢谢。

5

“极客谈科技”,全新视角、全新思路,伴您遨游神奇的科技世界。

随着移动支付的快速发展,电子钱包快速发展,据统计每10个中国人里就会有8个使用移动支付。移动支付中离不开的就是二维码,全球每天将会消耗上百亿个二维码。不禁会令人产生担忧,二维码是否会同我们的IPV4地址一样,面临枯竭的问题呢?


关于二维码是否会存在枯竭的问题

先给出答案再慢慢解释,即便每天百亿的消耗,二维码的数量足够支撑至下代技术出现之前的正常运转。这一切源于二维码的设计方式,包含了足够多的数量。

二维码的编码方式有很多种,但是具体的实现原理大同小异。利用某个区域黑白色块标识不同的信息,意味着二维码同样使用的是2进制,非黑即白!除了常规的数据区域外,编码上还包含各种格式信息、版本信息、控制信息、校验信息等,二维码的计数是要排除该部分信息。即便如此,二维码的数量依然较为庞大。

因为二维码编码方式有很多种,很难确定二维码支持的最高数量(受到硬件像素制约,后面会提及)。我们简单举个例子,假设使用矩阵式二维码,并且横竖之间只支持20个像素点(实际情况远远多于20个像素点)。那么,会包含多少个二维码呢?2^400个二维码。

这里大家可能并没有一个明确的概念,看看我们万物互联的IPV6是多少个地址吧!2^128,即可实现我们身边每件设备的互联。那么,二维码数量的恐怖您也该有所体会。2^400这个数字是否是二维码的极限呢?不是,这里仅仅是为了便于理解所列举的一个小例子。

二维码的数量与我们硬件扫描的设备有关,硬件设备能力越强二维码的数量也就越多。例如我们二维码使用800*800的像素规格,那么支持的地址就是2^640000。这里是指数级的增长,并非是简单的翻倍,可以说这是一个相当恐怖的数据。试想,硬件的提升,这个像素点若提升至4800*4800又该如何呢?您还会担心二维码不够使用的问题吗?


关于二维码地址是否会枯竭的问题,您怎么看?

欢迎大家留言讨论,喜欢的点点关注。


6

如果明白了二维码的原理,就不会有是否会用完这样的疑问。

手机号码、车牌号、IP地址等,就有被用完的可能性。原因在于它们不允许重复。而类似姓名、网上昵称、个性签名等等,则允许重复,所以永远也不会用完。比如现在一大堆人姓名是张伟、李子涵等。

注意:二维码是允许重复的

二维码看上去显得很神秘,事实上它只不过就代表一串文字(多数情况下,99%如此,下边的讨论不再注明),在整个过程中,也没有用到加密技术。比方说下面这个二维码,就是“犍为真人”四个汉字。

这么花里胡哨的一张二维码,就完全等同于文字“犍为真人”。那么问题来了,既然完全等同,为什么不直接用文字呢?这就涉及到打字的辛苦。打字速度再快,也是需要花时间的,4个字还好,如果400个呢?另外,像11位手机号,我们打字的时候都要反复对照几遍,还不保证一定正确不粗心。于是二维码就发明了,它主要针对手机、平板。二维码目的就是用来复制一串文字,避免打字录入。比方说,我要给你一个手机号(比如海报,广告),以前要把手机号打印在纸上,你照着一个一个输入。现在,我把手机号转换成二维码打印到纸上,你用手机对着纸上的二维码扫一扫,直接就识别出来11位数字。

当我们用手机扫二维码时,会启动手机的自动识别程序,将图片识别成一串文字,于是就轻松实现了类似电脑复制粘贴的功能。说得更直白一点,假设未来图像识别技术非常发达,那么二维码可能就慢慢消失了,因为直接扫文字就可以了。也就是说,那时候我把上面那张二维码图换成醒目的“犍为真人”四个大字,是完全没有区别的。

那么为什么现阶段二维码可以轻松识别?那就是因为它用到了特殊的,针对计算机(手机也是计算机)摄像头的算法,天生就是给计算机看的。这就好比,盲人看(摸)普通文字很费劲,他们用盲文。相反普通人看盲文又觉得是“读天书”。

大家都知道,计算机用二进制表示信息。二维码的那些黑白方块就是二进制。黑色代表1白色代表0。黑白必须对比清晰,然后摄像头拍照后转换成010101这样的二进制。之后用较复杂的解码算法转换成文字。

算法中最复杂的设计就是纠错。意思是说,即使识别错了一部分黑白块,依然可以成功解码。举个人类识别的例子。比方“38”这样的文字形式就不合理,因为容易把3错误判别成8。而“三八”,“叁捌”就很好。而且即使这样的文字被遮挡一部分或很模糊,依然可以被人类辨别。这就叫“纠错”或“容错”。除了纠错,二维码还涉及到定位参考,掩码等技术。这里就不再展开介绍。

我们再来看看二维码的容量到底有多大。在国内,二维码多数用的都是QR码。QR码最多能表示7089个纯数字,或者4276个字母(形如网址的字符),或者2953字节的二进制(相当于2.9KB)。还有日文中文等最多表示数就不再列出。

已经足够多了!

而我们平常见到的二维码,最多的就是网址,其次是纯数字。比如微信扫码支付(商家扫你),公交地铁扫码,共享单车扫码,火车票实际上代表的就是一堆纯数字。而关注公众号,微信支付(你扫商家),就是一个网址。这些数字或二维码,通常长度还不到30位。

再强调一下,二维码多数时候仅仅就代表一串文字。比方说你扫商家的二维码,实际上就是一个网址。这时候,你自己在微信浏览器中手打输入这个网址,然后打开,效果是一样的(弹出一个输入金额的画面)。区别就是手打网址,要打半天字浪费时间,还容易输错。

明白了这些道理,就知道了二维码是用不完的。一方面,二维码允许重复。另一方面,二维码几千的最大容量,足够表示日常的网址和数字编码。

7

二维码是在水平和垂直方向上进行信息编写的,有着更强的多级纠错能力和识读能力,储存容量远超一维码。最低格式的二维码是21x21格式,共有441个格子,每个格子只有黑或白两种选择,再减去二维码固定数量的192个角落的定位框。理论上,21x21格式的二维码有2的249次方种组合,这个数字有75位。

按照国人每天扫码15亿次计算,需要1600000亿亿亿亿亿亿亿年才能扫尽(7个“亿”),而地球至今才只有46亿年,宇宙138亿年,宇宙预期剩余寿命1400亿年。

所以完全不用担心二维码刷完,刷到海枯石烂,宇宙毁灭都刷不完,然而这还只是以21x21最小规格来计算的,最大177x177规格的二维码,难以想象这个数字有多恐怖。

然而,原昌宏及其公司当初想做的只是一种二维码的公司内部管理体系,并未想到背后还有如此巨大的商业价值,所以当初放弃了对二维码专利费的索取。

若每人使用一次二维码就缴纳1分钱的专利费,原昌宏早就可以躺在家里数钱了。

8

再了解二维码数量之前,我们先了解二维码的原理。

二维码的原理

二维码其实就是由0、1组成的二进制,我们看到的二维码每个方块,都有意义,其中白色的方块代表0,黑色方块代表1。

而我们日常用的比较常见的是37*37的格子,其中三个角都有一个固定的方块,这个方块的大小是固定的,是用于识别时,方便定位二维码防线的用途。大小有7*7个像素点。

所以,37*37的二维码格子,可以产生37x37-49x3=1222个格子,又因为每个格子仅仅代表0或1两种情况,因此,共有2^1222种排列组合情况,也就是说,一个37*37的二维码格子,可以产生2^1222个二维码。

可能这样说,大家没概念,我们可以和全世界的人口做个对比,根据世界人口时钟比较,截止到2019年10月20号下午3点13分,目前全世界人口大概为7744402531人(77.44亿人),如果想要用完所有的二维码,大概每个人需要用完10^(292)个,并且还有非常多的剩余。

还有,我们宇宙中有非常多的基本粒子,甚至每个人体内都有上万亿个中微子穿过,由此可知宇宙中的粒子数是多么的恐怖。据科学家推算,全宇宙中的粒子数大概有3.28×10^80(肯定有误差,这已经是非常保守的估计),而二维码比全宇宙中所有的粒子加起来还要多。

由此可见,二维码虽然是有限多的,但却用不完。

而37*37的二维码只是其中一种,还有40*40,21*21等40多种规格,因此不用担心二维码被消耗完的问题。

识别二维码的原理

二维码虽然在人类看来像天书一样,并且每个二维码看起来都差不多,但在机器眼里,每个二维码都不相同。

首先白色之所以是白色,是因为它能反射各种波长的可见光,而黑色则相反,能吸收所有波长的可见光。所以当机器在靠近二维码并识别时,机器会根据不同的波长判断这个格子是白色还是黑色。

由于黑色和白色代表着不同的数字“0”“1”,所以机器也会自动识别出这个二维码不同的排列方式,其实还要注意一点,机器在识别图形时,会由于各种原因出现差错,而二维码之所以很少出错是因为它自身储存一定容量的纠错率。

比如我说:“我有一个苹果”,当你听错一个字之后,你可能会误解我的意思,但如果我说:“我有一个苹果,英文名叫apple,乔布斯用它做手机的名字....”等等,看似一大堆的废话,你再识别我的信息时,就很难出错了。二维码也有一些方格,对应的是这些废话,防止识别错误。其实这也是信息学的香农第三定理。

当机器识别出二维码不同的排列方式之后,然后就会像我们打开网页一样,每个不同的排列方式,对应着不同的“网页”,而这个网页被人们提前编撰过信息,所以识别出这个“网页”时,对应的信息也会被识别出来。

因此,二维码不仅能包含简单的价格,也可以包含一个网页,一个自我介绍,一份简历等等任何你想输入进去的东西。

9

答:二维码数量虽然是有限的,但是多到用不完,永远也用不完。


二维码原理

二维码发明于1994年,相对于一维的条形码,二维码具有更大的容量;二维码本质上就是一个矩阵,在常见的二维码中,白色色块表示“0”,黑色色块表示“1”,经过扫描器读取后的二维码就成了一段特殊的代码,计算机从而识别出代码中的有效信息。

二维码的数量

二维码能表示的数量和二维码自身的像素有关,像素越高,二维码表示的数量成指数增长,但是读取二维码和扫描器的像素有关,在各种二维码当中,我们常用的编码方式是QR Code,目前该编码方式用到最大的像素为177*177=31329像素,那么理论上,该编码方式的组合数量为:

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

这是一个非常巨大的数值,哪怕全球人口有1000亿,每人每秒钟消耗1亿个二维码,即便从宇宙大爆炸开始至今(138亿年)一直在使用,也就消耗了4.35*10^36个二维码,远远低于177*177像素的二维码数量,更何况二维码的像素是可以继续扩展的。

实际上,二维码有些固定信息以及纠错码,所以固定像素的二维码数量要低于理论值,但是数量也多到用不完,而且平常我们也用不到177*177这么高像素的二维码。


生活中的二维码

平常我们用得最多的就是支付二维码,每张二维码里面,其实包含了你的支付平台、账户信息、支付金额和时间等等,你换一张支付码,其中的数据跟着变化,但是信息所占长度未变,时间随时都在变化没有终点,所以属于你的支付码是用不完的。


我的内容就到这里,喜欢我们文章的读者朋友,记得点击关注我们——艾伯史密斯!

10

这个问得太不专业了,能否用完我不清楚,但是有个叫"协议"的东西你没有弄清楚。二维码怎么使用只跟对应的APP所定义的内部协议有关。打个比较极限的比方。比如某一个二维码扫出来的是二进制类容“110”。用某服务APP扫出来,可能指的是110报警电话。用某公交APP扫描,显示的是110路公交车的信息,支付宝扫描出来的意思是付款110块,微信扫描出来的意思是收款110块,等等,这都是可以的。所以扫描出来的二维码的内容该怎么用,由扫描的APP里面的程序代码决定怎么使用(即APP自己定义的内部协议规定)。

再打个浅显的比方,同样是21路公交车,北京的21路,和上海的21路公交车,能一样么?有冲突么?显然没有。同样是21路,该怎么用,由各地决定,互不冲突。

因此,就算用完了 ,出现重复,也不影响使用,只要是同一使用协议内不重复就没有关系。

你的回答

单击“发布您的答案”,即表示您同意我们的服务条款