Это скорее вопрос информатики / теории информации, нежели простой вопрос программирования, поэтому, если кто-нибудь знает лучший сайт для публикации, пожалуйста, дайте мне знать.
Допустим, у меня есть 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
Если я могу гарантировать, что 3 сообщения из 4 пройдут, то будет получено хотя бы одно сообщение от каждой группы. Таким образом, я могу сделать эту работу с 9 битами или меньше, вероятно, есть способ сделать это с меньшим количеством битов, но я не уверен, как.
Существуют ли какие-нибудь простые алгоритмы кодирования / декодирования, чтобы делать подобные вещи? Есть ли у этой проблемы имя? (если я знаю, как она называется, я могу ее погуглить!)
примечание: в моем конкретном случае сообщения либо приходят правильно, либо не приходят вообще (сообщения не приходят с ошибками).
(правка: перенесена вторая часть в отдельный вопрос)