二维码我们都知道,支付或关注公众号里经常用到。二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。
那二维码会不会有一天用完?答案是:会。
因为二维码的尺寸是有限的,那二维码的数量就是有限的。
但是扫完所有的二维码,需要很长很长很长很长的时间。
现在的二维码有40个官方版本(二维码是由Denso公司于1994年9月研制的一种矩阵二维码符号)。
从Version1-40,最小为21*21、最大为177*177矩阵。
其中,微信名片就是37×37 的矩阵规格,微信的付款码是 25×25 的矩阵规格。方便理解,我们用方块作为矩阵单位。
扫~37×37矩阵的二维码
如何计算,各矩阵中生成的二维码个数?我们来举个例子:
下面四宫格,每个格子有两种颜色变化,请问一个四宫格可以组合出多少个图形?
解:一个格子两种颜色,那就是两种可能,两个格子就是四种可能,三个格子就是8种可能,四个格子就是16种可能。所以,四宫格能够组成2^4,共16个图形。
以此类推:
25X25 的微信付款码
每一排有 25 个方块,共 25 列,除去定位用的方块和冗余纠错的方块等,还剩下478 个方块。按照二进制,每个方块只有黑或白两种选择,所以 478 个小方块理论上一共可以组合 2^478 个二维码。
也就是一个25X25规格尺寸的二维码可以生成:780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572544个二维码。
大家可以尝试念出来大概多少个?
根据疫情期间1400亿个二维码的数量来计算,假设微信一年会用掉6000亿个二维码。
那微信用掉25X25这一个尺寸产生的二维码需要多少年呢?
我们来算一下:2^478/6000亿=1.301×10^132 年(超多亿亿亿亿年)
二维码咱中国人是不缺了,小小推广一下,世界上所有人都用,那就是1.301×10^132 / 5 = 2.602 x 10^131 年(好多亿亿亿亿年)
还能给力推广一下么?
根据资料,宇宙中大约有700垓(7x10^22)颗恒星,又根据德雷克公式
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。