завершение части x с использованием n-1 частей - PullRequest
1 голос
/ 01 мая 2011

Я собрал небольшой модуль в python, который принимает список строк / буферов одинакового размера и возвращает строку xor того же размера. Затем, используя эту строку вместе со строками n-1, я могу дополнить недостающую. Это прекрасно работает, поэтому мой вопрос:

  1. знаете ли вы уже сделанный модуль Python для этого?
  2. есть ли способ (практически / теория), где я могу заполнить 2 недостающие строки, используя другие n-2 строки:

Допустим, у меня есть 4 строки:

а. "Привет"
б. "Прицел"
с. "Малиновка"
д. "о"

Есть ли способ построить новую строку того же размера (или чуть большего размера), чтобы, если бы у меня была эта строка, а также 2 строки, например, 'a' и 'b', я мог бы завершить 'c' и 'd «

Ответы [ 2 ]

0 голосов
/ 01 мая 2011

Алгоритм поиска таких пар прост - для каждого возможного 'c' найти совпадение 'd'. Вы получите много решений. Очевидно, что вы не можете получить одну пару ('c', 'd'), потому что тогда вы можете переключить один бит в обеих строках (один и тот же бит в обеих) и получить другое решение.

0 голосов
/ 01 мая 2011

(1) Маловероятно, что будет опубликован модуль для этого.

(2) Я думаю, что вы имеете в виду a ^ b ^ c ^ d == e, и вы спрашиваете, можно ли восстановить значения c и d («завершено»), если известны значения a b и e. Ответ на этот вопрос - нет - у вас есть одно уравнение с двумя неизвестными.

Обновление в ответ на вопрос "Так что, если я вас правильно понимаю, нет лучшего решения, чем то, что я сделал XOR?"

Нет, я указывал, что использование XOR позволило восстановить только одну пропущенную строку. Возможно, вы захотите выполнить поиск по сети для «кодов с исправлением ошибок».

...