近几年移动支付的普及,无论是支付宝、微信的日常支付,还是公交地铁的刷码进站,二维码成为人们生活中离不开的东西。我们每天用手机扫描的二维码大家真的了解吗?有没有担心过自己付款二维码会与别人的相同呢?小哈今天用比较简单的数学方法来给大家计算一下,看看二维码到底会不会重复。
二维码的出现距今已经有几十年了,它的迅速发展归功于它的属性:需要的识别设备简单,本身可蕴含较大信息量。如果大家仔细观察二维码的话,可能会发现二维码类似于马赛克一样,在一张方形的图片上,黑白块交替分布,按照特定的标准生成的二维码是否会有相同的两个呢?
目前常用的二维码尺寸一共40种,最基础的版本1为21 x 21的矩阵,版本2是 25 x 25的矩阵,再高一级的版本3是29 x 29的尺寸……以此类推。每个更高一个版本会比之前的版本每边增加4个尺寸。最高版本号为40,即177 x 177 的正方形。不同的方形矩阵就蕴含了不一样的信息,那每个版本的二维码到底可以生成多少数量的二维码呢?
版本1可以编码的数据数量为41个数字或25个字母,最高的版本号为40的可以编码的数据数量为7089个数字或者4296个字母。我们目前常用的是版本1二维码,将这些数字组成一个IP(不是电脑网络的IP,仅仅作为区别物品的识别码),到底可以有多少个呢?
以其中一个版本为例,如果41位全是数字,那相当于41个数字全排列,每一位上都可以选择从0-9任意一个数字,如此计算的话,最少可以提供10^41≈134226593亿,除去某些近似的,最少也可以提供130万亿个完全不同的二维码,这是什么概念呢?也就是说全世界近80亿人口,每个人可以分到1.5万个不重复的二维码。并不是网上所说的那样几千万个就有可能重复。
以上仅仅是基于其中一个版本的二维码进行的理论计算,版本号为40的二维码所能承载的信息更是天文数字级别的。所以,在实际使用过程中,二维码数量远远没有理论计算的数量这么多。因此大家根本不用担心跟别人的重复。不知道各位看官是否认同呢?欢迎再下方留言评论。