Я создаю небольшой модуль в python, который принимает список строк/буферов одного размера и возвращает строку xor
того же размера. Затем, используя эту строку вместе со строками n-1
, я могу завершить ее.
Он отлично работает, поэтому мой вопрос:
Скажем, у меня есть 4 строки:
а. "Привет"
б. "прицел"
с. "Малиновка"
д. "about"
Есть ли способ создать новую строку в том же размере (или немного больше), если бы у меня была эта строка, а также две строки, например "a" и "b", я мог бы завершить "c" и "d"?
(1) Для этого вряд ли будет опубликованный модуль.
(2) Я думаю, что вы имеете в виду a ^ b ^ c ^ d == e
, и вы спрашиваете, могут ли значения c и d быть восстановлены ( "завершены" ), если известны значения b и e. Ответ на этот вопрос - нет - у вас есть одно уравнение с двумя неизвестными.
Обновить в ответ на вопрос ", поэтому, если я правильно понимаю, что нет лучшего решения, чем XOR, что я сделал?"
Нет, я указывал, что использование XOR позволило восстановить только одну отсутствующую строку. Вы можете выполнить поиск в Интернете для "кодов с исправлением ошибок".
Алгоритм поиска таких пар прост - для каждого возможного совпадения "c" найдено "d". Вы получите много решений. Очевидно, что вы не можете получить одну пару ('c', 'd'), потому что тогда вы можете переключить один бит в обеих строках (один и тот же бит в обоих) и получить другое решение.