百科问答小站 logo
百科问答小站 font logo



二维码是否会重复?能否用数学证明? 第1页

  

user avatar   pansz 网友的相关建议: 
      

二维码可以重复,问题本身就是不成立的。

普通尺寸的二维码完全等价于一千多字节的一个网址。准确的说是一千多字节的字节流,它的尺寸是有限的,因为源数据就是有限的,并不是无限的。

过大的数据无法生成有限尺寸的二维码,如果数据太大,其生成的二维码会难以识别,所以一般二维码的数据量就在一千字节左右。

然后,用一千多字节能表示的可能性已经非常大了,想象一千位的密码是啥概念?

一般的网址还没一千字节呢,你会担心网址重复吗?


user avatar   zhao-jiu-tong 网友的相关建议: 
      

要论证二维码不会重复,关键是要证明信息到二维码的映射是一个单射,即不同的信息生成的二维码一定是不同的,而不是证明它是“一一映射”。其实是存在相同信息产生不同二维码的情况的,相同信息在纠错等级为L(7%)和H(30%)下所生成的二维码就是完全不同的。

那么如何证明不同信息所生成的二维码一定不一样呢


用一个例子给大家简介一下二维码的生成原理:

设原信息是:

CN01

二维码版本为1,纠错等级为H

首先确定它的格式,包含字母和数字,共4位,需要Alphanumeric这种格式(模式编码:0010),格式信息会保存在编码的前几位,位数紧随其后

然后将主要信息二进制化,根据如下表格

我们可以得到 CN01:(C=12)(N=23)(0=0)(1=1),

两两分组为(12,23)(0,1)

再将每一组转换成11bits的二进制信息,这里是将头一个元素乘上45(总元素数)再加上后一个元素,这样可以保证不同的信息所产生的数据码一定是不同的,信息是完完全全没有损失的。

(12,23)=12*45+23=563=01,000,110,011

(0,1)=0*45+1=1=00,000,000,001

再加上模式编码0010以及位数信息(4位,在Version1-H下,位数信息为9bits,所以是000,000,100),我们得到:

除此之外,还需要加上结束码 0000 来标志结束。

由于接下来要把数据码按8bits划分,所以还要求总码长度必须是8的倍数,所以像CN01这个目前只有39位(39=4+9+2*11+4)的码,必须多补一个0,除此之外还不够,不同版本不同纠错级别对总码长度下限也有限制,如果总码太短,还要在后面加补齐码11101100 00010001,一直加,直到它满足位数的最低限制。

OK,编码部分至此告一段落,简单来说,不同信息所生成的数据码一定是不同的

除了数据码外,总码还包含了大量的纠错码,纠错码部分比较复杂,在此就不介绍了(因为我也不懂)。可以肯定的是,纠错码是加在数据码后面的,所以不同数据码所产生的总码一定是不同的

最后只需要证明,不同总码生成的二维码一定是不同的即可回答题主的问题。

总码到二维码的过程简单来说就是,把不同字节按红线顺序填充到下面这些纠错码字区块中,然后再把版本信息、纠错等级这些杂七杂八的东西放到特定区域,一个二维码就完成了....吗?

并没有,如果咱们的信息是111111111111111111...111,全是1,二维码就会变成黑疙瘩,这样很可能根本扫不出来,所以要再叠上一层掩码(简单来说就是将刚生成的图像与下述图像做一个异或操作),掩码分为如下几种,主要目的就是让二维码的黑白格子数量更平衡一些,掩码的选择是有相关算法的,在扫描二维码的过程中也会判断出所使用的的掩码类型,具体方法不(我)再(也)赘(不)述(懂)。

做完掩码,咱们的二维码就大功告成了。显然,在已知掩码图样的情况下,异或操作也不会造成信息损失,不同的总码经过填充、掩码这两个过程后所得到的二维码仍然是不同的!

最后总结一下:不同的信息——不同的数据码——不同的总码——不同的二维码图样

补充:

信息容量:

即使是Version-40的二维码,也只能存储几千个字而已。

版本:

ABCABCABCABCABCABCABCABC (二维码自动识别)

实际上,二维码有很多种,我们日常生活中使用的都是二维码中的QR码(全称为快速响应矩阵图码),除此之外,还有汉信码、PDF码等。

zh.wikipedia.org/ (二维码自动识别)




  

相关话题

  [x]表示小于x的最大整数已知[√1]+[√2]+[√3]+……+[√n]≤2022,求n的最大值? 
  为什么在数轴上随便取一个点,一定取到的是无理数? 
  如何证明将任意3的倍数各数位数字立方求和,重复数次后得到固定数值153? 
  77 的 88 次方的末位数字是多少? 
  请问如何求下面这个连分数收敛到的值? 
  这个证明怎么证? 
  如果1+1=0你认为是什么原因? 
  很多老师都用1.01的365次方和0.99的365次方论证要坚持每天进步,可这个模型跟实际相符吗? 
  如何运用积分的知识去解这一道数学分析的题目? 
  数学中有哪些明明是暴力破解还给人美感的证明? 

前一个讨论
如何看待小米,oppo,vivo三家厂商在 2019 年上半年手机销量(中国区)大幅下滑近 20%?
下一个讨论
在医院喊护士换针水是称呼「护士」还是称呼「医生」显得更有礼貌?





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利