将 4 字节消息编码并初始为 8 个字节在数学上是否可行,如果 8 个字节中的一个被完全丢弃而另一个错误地重建初始 4 字节消息?将无法重新传输,也不会知道丢弃字节的位置。
如果使用 Reed Solomon 纠错,将 4 个“奇偶校验”字节附加到 4 个“数据”字节的末尾,例如 DDDDPPPP,那么您最终会得到 DDDEPPP(其中 E 是一个错误)并且一个奇偶校验字节已被丢弃,我不相信有办法重建初始消息(尽管如果我错了,请纠正我)......
将最初的 4 字节消息乘以一个常数(或执行另一个数学运算),然后利用逆数学运算的属性来确定丢弃了什么字节呢?或者,对消息的结构施加一些限制,因此每隔一个字节需要是奇数,而其他字节需要是偶数。
或者,它也可以是 4 个十进制数字,而不是字节,以某种方式编码为 8 个十进制数字,在上面提到的相同情况下可以检测和纠正错误 - 不重新传输并且不知道丢弃字节的位置。
我正在寻找任何人可能有的任何疯狂的想法……有什么想法吗?
编辑:
这可能有点做作,但我试图解决的情况是你有一个故障打印机,可以将重要的数字打印到表格上,然后邮寄给使用 OCR 的处理公司阅读表格。OCR 不会是完美的,但它应该很接近,只有数字可以读取。有故障的打印机可能是一个更大的问题,它可能会丢失一个整数,但无法知道它会丢失哪个,但它们总是会以正确的顺序出现,不会交换任何数字。
可以更改表格,使其始终在最初的四个数字和纠错数字之间打印一个空格,即 1234 5678,这样人们就会知道是丢弃了 1234 初始数字还是丢弃了 5678 纠错数字,如果这样的话使问题更容易解决。我的想法有点类似于他们通过算法验证信用卡号码的方式,但是是四位数的。
希望这可以澄清我在寻找什么......