这更像是一个计算机科学/信息论问题,而不是一个简单的编程问题,所以如果有人知道一个更好的网站来发布这个,请告诉我。
假设我有一条 N 位数据,它将在 M 条消息中冗余发送,其中至少有 M-1 条消息将被成功接收。我对以每条消息更少的位数对 N 位数据进行编码的不同方法感兴趣。(这类似于RAID,但级别要小得多,其中 N = 8 或 16 或 32)
示例:假设 N = 16 和 M = 4。那么我可以使用以下算法:
1st and 3rd message: send "0" + bits 0-7
2nd and 4th message: send "1" + bits 8-15
如果我能保证 4 条消息中的 3 条能够通过,那么每个组中至少有一条消息能够通过。因此,我可以用 9 位或更少的位来完成这项工作,可能有一种方法可以用更少的总位来做到这一点,但我不确定如何。
是否有一些简单的编码/解码算法来做这种事情?这个问题有名字吗?(如果我知道它叫什么,我可以谷歌它!)
注意:在我的特定情况下,消息要么正确到达,要么根本没有到达(没有消息到达时有错误)。
(编辑:将第二部分移至单独的问题)