徐伟轩博客-爱写歌的程序员思考和科普的日常自媒体

统计
TypechoJoeTheme

_

徐伟轩博主
2020-12-04 08:43
/
3 评论
/
803 阅读
/
2511 字
12月04

相信二维码在大家日常生活中肯定不会陌生,今天我们就来探讨一个有趣可能也无趣的话题:二维码会有用尽的那天吗?像平时大家使用的健康码、支付码、乘车码、名片二维码、校园码……大家是否会有个疑问,天天这么用二维码,会不会有一天用完啦?那会不会重复出现,造成系统混乱BUG了?

二维码会扫完吗

问:二维码会被咱扫完了吗?
答:会的。
(但是)
凡是总归有个但是,请看下文分解。

配图:二维码区域介绍
二维码只不过是表面,其中隐藏的信息才是灵魂。一个信息就可以生成一些二维码,一个二维码就能扫出一个信息,二维码的功能全看软件怎么处理这个信息,和二维码本身及其编码方式无关。所以只要是有那个信息,无论是直接发给你文本信息还是发给你一个二维码都是一样的。

什么时候耗尽

二维码具体什么时间会耗尽呢,有没有个确切的时间?前文徐伟轩博客稍微留了一丢丢悬念,但是,总归要给大家一个交待。

要解释这个问题,就得稍微了解一下二维码的前世今生

二维码是在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。二维码是由Denso公司于1994年9月研制的一种矩阵二维码符号,现在共有40个官方版本,编号从Version 1一直到Version 40,最小的是21×21的矩阵(微信付款码是25×25呆子数呗),最大的则是177×177。 二维码的长度、宽度均记载着数据,它有一维条码没有的“定位点”和“容错机制”。其中,容错机制在即使没有识别到全部的条码、或是条码有污损时,仍然可以正确地还原条码上的信息。

二维码的种类有很多,包括PDF417码、QR码、EZ码和QuickMark等。以QR码为例,它呈正方形,常见的有黑白两色。在3个角落印有较小,像“回”字的正方图案,这3个是帮助解码软件定位的图案。

QR码比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。
例如:微信名片使用了37×37的矩阵规格,而微信的付款码是25×25的矩阵规格。

如下图,我们看到二维码的基本结构:

二维码的尺寸是有限的,所以二维码的数量也是有限的,但这个有限对我们来说已经近乎“无限”,要想扫完所有的二维码,需要这么……长的时间。

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

不好意思,计算器是崩溃的~

没关系,咱们用电脑计算2^1000出来是:
科学计数法:1.0715086071863 * 10^301
具体数字为:
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
额……
我也懒得计算了
反正 大概 也许 可能 一千万亿年后,二维码会被大家扫完

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

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

二维码会重复吗

脑洞大开的时候,是不是大家会想到万一咱自个儿支付宝的收款二维码和某个超级市场的收款码撞衫了,然后……嘿嘿嘿,是不是天天能进账超级多……
不好意思,并不会!
二维码上的黑白点排列并不是随机无意义的,而是原始二进制代码,代表某一个意义,而不同的人的二维码要它表示的意义让它代表的事是不同的,所以不会有重复的。
而和条形码相比而言,二维码能储存一维码不能存的汉字、图片等信息,以及二维码相对于条形码更能容错!因为二维码基本都用上了rs码四级纠错,还加入了保密措施;尺寸大小可按比例随意变动,条形码就只能在固定范围内细微变化,不然就扫不准啦。

现实中的特定意义在网络数据中却不是不变的!
像大家常用的支付宝付款码是“活码”,活码本身不是存储的这个目的的码,而是对一个分配的短网址进行编码,扫描后跳转到这个网址。这样将内容存储在云端,可以随时更新、可跟踪扫描统计,可存放图片视频、大量文字内容,同时图案简单易扫。
缺点是扫描时必须联网!(当然咯,超市里扫你的付款码,你自己是不一定要联网的啦)
而不变的是静态码,是直接对电话、地址、网址等信息进行编码(一般最多50个文字), 所以无需联网也能扫描显示,缺点是生成的二维码图案非常复杂,不容易识别和打印,容错率低,而且印刷后内容无法变更,无法存储图片和文件。

未来无限可能

二维码有不同的点密度,目前使用最密集的是“ QR-40” ,它可以存储2953个字节,即23624位,意味着有2的23624次方个QR-40编码,这是一个非常大的数字。
2的23624次方是什么概念呢?它比可观测宇宙中原子、夸克和光子的总数量还要多。
按照贝克的理论,点密度最小的是QR-1,它可以储存7字节,但仍然有2的56次方个QR-1编码,仍然足够给地球上每一个原子贴上独一无二的二维码。

上面我们看到二维码的基本图案,如果每个格子有两种颜色变化(比如黑白),那么四宫格就有16种可能的组合,也就是2^4,一共16个图形。
那么照此类推,25×25的微信付款码共有625个方块,除去定位用的、冗余纠错用的,可供利用的是方块有478个。按照二进制,每个方块只有黑或白两种选择,478个方块理论上可以组合2478个二维码。

【大家回想一下,高中时候学的“排列组合”】
假设:微信一年会用掉6000亿个二维码,那微信用完25×25矩阵二维码,就需要:
2^478÷6000亿=1.301×10132年 约等于 好多亿年
即便是世界上的所有人一起用,也需要:好多亿年吧。
(当然,还没考虑技术迭代)
所以,一定意义上来讲,二维码好像又是扫不尽,用不完的。

额,大家再试着抛开咱们固有的认知,微信25×25矩阵规格,现有官方规格就已经到了177×177矩阵,而随着矩阵的扩大,所能呈现出来的二维码数量可是呈几何指数级别增长的。
按照热寂理论对宇宙终极命运的猜想,大约一千万亿年后,行星就将脱离轨道,所有生物都没办法依靠恒星活着了,而那个时候二维码,还是远远没有扫完。

你不会说「把宋体用完了」,因为字体天生就是重复使用的。所以,你也就不会说「把二维码用完了」,因为二维码跟字体一样,固有属性就是重复使用。我们可以这么理解,二维码它不是「资源」,只是一个密码本,使用二维码不存在任何的「消耗」,也就不存在「用完」一说。或者我们可以理解为“二维码中小方块的排列会不会用完?”,但是这个问题是没有意义的,所以也就谈不上答案是会还是不会。

诚然,我们也看到现在类似刷脸支付大有替代二维码付款之势,
但甭管谁技高一筹
未来科技会发展到什么程度,我们谁也不知道。

备注:本文资料源自互联网 科学杂志 文章或有夸大之嫌,仅供参考

二维码
赞(0)
赞赏
感谢您的支持,我们会继续努力哒!
版权:

徐伟轩博客-爱写歌的程序员思考和科普的日常自媒体

本文链接:

https://letus.top/archives/109.html(转载时需注明本文出处及文章链接)

如无特别注明,本站内容为原创。

如需转载或刊登,请联系我们获得授权。

评论 (3)
本篇文章评论功能已关闭

亲爱的朋友

一切伟大,源于勇敢的开始。

人生倒计时

今日已经过去18小时
77%
这周已经过去5
71%
本月已经过去14
45%
今年已经过去3个月
25%