これは、単純なプログラミングの問題というよりは、コンピュータ サイエンス/情報理論の問題です。この問題を投稿するのに適したサイトを誰か知っている場合は、お知らせください。
M メッセージで冗長に送信される N ビットのデータがあり、少なくとも 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 つのメッセージが通過することを保証できれば、各グループから少なくとも 1 つのメッセージが通過します。したがって、9 ビット以下でこれを機能させることができます。おそらく総ビット数を少なくしてこれを行う方法がありますが、その方法はわかりません。
この種のことを行うための単純なエンコード/デコードアルゴリズムはありますか? この問題に名前はありますか?(名前がわかれば、ググってみます!)
注:私の特定のケースでは、メッセージが正しく到着するか、まったく到着しません(メッセージがエラーで到着しません)。
(編集:2番目の部分を別の質問に移動しました)