给定传输中的数字总和以某个数为模。最简单形式的校验和是在7位数字(例如,ASCII字符)上附加的奇偶校验位,使得1的总数始终是偶数(“偶校验”)或奇数(“奇校验”)。一个明显更复杂的校验和是循环冗余校验(或CRC),它基于整数上的多项式代数(mod 2)。它在检测传输错误方面基本上更可靠,并且是调制解调器中使用的一种常见的错误检查协议。
循环冗余校验
复杂的校验和(通常缩写为CRC),它基于整数上的多项式代数(mod 2)。它在检测传输错误方面基本上更可靠,并且是调制解调器中使用的一种常见的错误检查协议。CRC是散列函数的一种形式。
要使用CRC比较大数据块,首先要为每个块预先计算CRC。然后可以通过查看它们的CRC是否相等来快速比较两个块,在大多数情况下节省了大量的计算时间。该方法不是绝对可靠的,因为对于比特校验和,
随机块将对不等价数据块具有相同的校验和。但是,如果
很大,则可以使两个不等效块具有相同CRC的概率非常小。
纠错码
纠错码是用于表示数字序列的算法,使得可以基于剩余数量来检测和校正(在某些限制内)引入的任何错误。纠错码和相关数学的研究称为编码理论。
错误检测比错误纠正简单得多,并且一个或多个“检查”数字通常嵌入在信用卡号中以便检测错误。像Mariner这样的早期太空探测器使用了一种称为分组码的纠错码,而最近的太空探测器使用了卷积码。纠错码也用于CD播放器,高速调制解调器和蜂窝电话。调制解调器在计算校验和时使用错误检测,校验和是给定传输中的数字的总和,模数为某个数字。 用于识别书籍的ISBN还包含校验位。
对13 位数字的强大检查包括以下内容。将数字写为一串数字 。拿走
并加倍。现在添加的数量数字在奇数 它们的位置
到这个号码。现在添加
。然后,校验码是使最后一位数字为0 所需的数字。该方案检测所有单个数字错误和 除0和9之外的相邻数字的所有 转置。
设表示
具有任意两个集合在至少
位置上不同的属性的(0,1) - 向量的最大数量。相应的矢量可以纠正
错误。
是
精确
1 秒的s 数(Sloane和Plouffe 1995)。因为
-vectors不可能在不同的
地方有所不同,因为
在所有
地方都有不同的-vectors 分成不同的两个集合,
![]() |
(1)
|
的值可以通过标记的发现
- (0,1)
-载体,发现所有无序对
的
-载体,其中彼此在至少不同
的地方,形成了一个曲线图 ,从这些无序对,然后找到团数的这个图形。不幸的是,找到给定图形的团的大小 是NP完全问题。
![]() |
OEIS | ![]() |
1 | A000079 | 2,4,8,16,32,64,128 ...... |
2 | 1,2,4,8 ...... | |
3 | 1,1,2,2 ...... | |
4 | A005864 | 1,1,1,2,4,8,16,20,40 ...... |
5 | 1,1,1,1,2 ...... | |
6 |