二维码就这么大一点,每个格还只能是非黑即白,那它会不会被用掉所有排列组合呢
答案是会,但是却不会,嗯,没错
细心观察会发现,不同地方二维码横竖格数是不一定相同的(二维码目前共有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个文字), 所以无需联网也能扫描显示,缺点是生成的二维码图案非常复杂,不容易识别和打印,容错率低,而且印刷后内容无法变更,无法存储图片和文件