随着科技的不断发展,我们的生活也越来越便捷,特别是进入互联网时代,人们利用移动设备进行支付、信息检索等也成了大势所趋。不是有一句话说得好嘛,移动支付的出现把小偷都逼到失业了! 今天我们来讲一讲作为互联网时代的产物——二维码。 二维码的出现给我们日常生活带来了许多的便利,除了日常的扫码支付以外,二维码还能够实现资源之间更高效地传递交流,可谓是人类智慧的结晶。 但是你知道吗,据不完全数据统计,全球每天消耗的二维码的数量将近100个亿。 相信看到这里很多朋友都会疑惑,二维码作为一种排列组合出来的图案,它的排列组合方式一定是有限的, 一天就有如此之多的二维码被消耗掉,那是不是再过几年所有的二维码都会被耗尽?二维码都用完了我们接下来用什么? 要回答这个问题,首先我们要来了解一下二维码。 二维码是如何产生的? 首先,二维码的产生必然是经济发展的需求所推动的。 初代的"二维码"其实就是我们所说的条形码(又叫做一维码), 上个世纪五十年代日本人为了解决收银员用手写记录商品售卖情况而引起的结账效率慢的问题,发明了条形码。 条形码原理是利用黑白两个反射率不同的色条组成的,通过对其扫描之后光的折射结果不同,从而识别出它所包含的信息。此后在很长一段时间内,条形码被广泛地使用,但这也出现了一个问题,随着经济快速地发展,人们对于信息储存的需求也在不断扩大,条形码在一定大小内储存容量有限, 它已经无法满足人们的发展需求了。 就在1994年,一个男人带着一维码"plus"版横空出世了,这个人就是"二维码之父"——一个叫做腾弘原的日本人。 腾弘原在原有的基础上对条形码做出了改革,从外观上面我们就能很明显地看出, 二维码和条形码最大的差别就是形状的不同 ,条形码都是竖条状平行分布的,负载信息的是色条;而二维码是矩阵式的点状分布,它负载信息的则是色块。 它们功能上的差别也就在于, 条形码只能够在水平方向上表达信息,而二维码能够在水平和垂直两个方向上储存和表达信息。 所以由于二维码更具有实效性,它也逐渐取代了条形码的位置,在日常生活中被人们广泛地使用。 "0"和""1"的二进制编码 一个有效的二维码其实就是一个矩阵, 矩阵的规格不同自然二维码的大小也不同,人们利用电脑中的程序手段对矩阵进行绘制,最后形成出来的不同内容的矩阵图案就是我们所熟悉的二维码了。 简单点来说就是 对一个矩阵里面的方块进行的填充,并且这每一个方块都携带了一定的信息片段,将这些信息片段组合在一起就能够得到完整的信息。 既然是二维码是矩阵中方块排列组合的结果, 那么从理论上来说,二维码一定会有消耗完的一天。 那"这一天"是多久呢? 我们用目前最小规模的21*21矩阵来演算一下,这个矩阵一共包含了21*21也就是411个方块,每一个方块可以被命名成"1"或者是"0",我们可以在矩阵内任意地填涂,那么这个矩阵一共可以有 2的411次方 种排列组合的可能性, 也就是大约是56万亿种可能 。 除此之外,25*25规模矩阵的二维码也是我们日常所使用频率最多的,不算上矩阵中用于定位的方块、用于纠错的方块以及多余无意义的方块,它里面一共包含了 478个 有意义的点, 那么25*25规模的二维码就一共有2的478次方组合结果,这个结果有多大呢? 这里我们引入一个幂函数的概念:"同底数幂相除,底数不变,指数相减",也就是a^m/a^n=a^(m-n)。2的478次方就是一个幂函数,2是它的底数也就是公式里面的a,478是它的指数,即m。 我们现在已经知道了2的411次方(也就是公式里的n)的结果,所以根据以上的运算法则,我们就只需要知道2的67次方的结果,再把2的411次方的结果与2的67次方的结果相乘,就可以得出2的478次方的最终运算结果。 21*21矩阵有2的411次方大约等于是56万亿,2的67次方等于147573952589676412928,两者相乘就是25*25规模矩阵的二维码所有排列组合的结果数量, 这个数据有多么地惊人,相信大家也看到了。 有朋友会说,直接说2的478次方不就行了吗?为什么非要弄得那么复杂? 一是2的411次方的结果太大,我无法给出一个准确的数据;二是因为,用这样拆分的方法能够让朋友们直观地感受到数据之大。 如果说上面的数据还不足以说明二维码可用的数量之大,那我们用一个更加直观的例子来说明。 上面已经说到了 21*21规模的矩阵有2的411次方种可能,这个数据太大算起来十分困难,在这里就不给出具体的数据了。我们就取它的一部分来看,从而推理类比出来最后的结果。 2的60次方的结果是115万亿 ,把这一部分数量的二维码 平均分给全球78亿人, 那么每个人能够得到 每个人可以得到大约1647万个二维码 ,假设 每人每天使用20个二维码,那么一个二年用完这些二维码大概需要2256年。 2256年,这个数字够直观了吧?人才能够活多少岁? 假设一个人能够活到一百岁,要用完这1647万个二维码,那么每天就要452个二维码。 正常情况下,谁会一天用得完452个二维码? 而这仅仅不过是2的60次方所推算出来的结果,只是二维码数量的冰山一角。 所以,我们再回到开头的问题,全球每天 消耗100亿个二维码,二维码会不会用完? 答案是当然会用完,不过全部用完是需要一个非常非常非常漫长的时间。 如果说没用完的二维码继承下来是一种财富,那人人都可以是富N多代了。 看到这里,可能有的朋友还会有一个疑问, 世界上两个有没有相同的二维码呢? 或者换句话说, 二维码的使用寿命那么低,能不能重复利用呢? 理论上来说,这种可能确实是有的。 但如果想要出现相同的二维码,那么只有在不同的系统之下才能够生成(因为同一个系统中肯定是不会生成相同的排列组合结果的)。 所以这两个 相同的二维码它们所承载的信息肯定是完全不同的 ,用这个解释我们就能知道,为什么我们在进行移动支付的时候,支付宝的系统扫不出来微信二维码的信息。 况且,二维码的数量那么庞大,根本没有必要使用两个重复的二维码来避免"浪费"。 其实经过了几十年的不断发展,二维码从规格上、版本上都在进行不断的革新, 常见二维码种类有Data Matrix、MaxiCode、Aztec、QR Code、PDF417、Vericode、Ultracode、Code 49、Code 16K,上面我们说到二维码只是QR Code这一种格式。 朋友们,请你们想一下,光是一种格式的二维码都够我们用上无穷无尽的时间,更不要提还有那么多种格式的二维码了! 所以,我们根本不用担心二维码用不用得完这个问题。 虽然理论上它的数量一定是有限的,但它的"有限"在人类发展 历史 中几乎趋近于"无限", 就算是刷到所有海水都干枯、所有石头都烂掉了都刷不完所有的二维码。 拿近了来说,以人类聪明的智慧,二维码的更新换代技术势头猛如虎,这几年不是 连静态二维码还没用完呢,这又出了动态二维码了吗。 照着这势头发展下去,说不定过几年就会出现"三维码"、"四位码"了呢? 作者 露丝 初审:小晞 校稿编辑:李子