百科问答小站 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/ (二维码自动识别)




  

相关话题

  同时满足两个不同等差数列的数是否组成等差数列?如何证明?等比数列呢? 
  关于闭区间上连续函数的一个证明题? 
  怎么在不公布证明的情况下让世人相信我证明了「哥猜」? 
  我自认为自己证明了0可以作为除数,若是如此将会有哪些改变? 
  如何以AB为高尺规作图作等边三角形? 
  无理数是否可能是一个循环周期过大甚至是无限的一个有理数? 
  QR 二维码在不影响扫码的情况下,哪些部分可以删除? 
  如何证明将任意3的倍数各数位数字立方求和,重复数次后得到固定数值153? 
  同时满足两个不同等差数列的数是否组成等差数列?如何证明?等比数列呢? 
  有理数集和无理数集哪个大,为什么? 

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





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利