завершение части x с использованием n-1 частей

1

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

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

Скажем, у меня есть 4 строки:

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

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

Теги:
algorithm
math
xor

2 ответа

0
Лучший ответ

(1) Для этого вряд ли будет опубликованный модуль.

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

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

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

  • 0
    (1) я говорю не только о python, но в целом - даже c / pp (2) это точно, но я имею в виду, есть ли еще один трюк, который можно сделать математически. или скажем, завершите 2/10 частей, используя остальные 8 частей.
  • 0
    @RoeeK: (1) я ответил на ваш более общий (любой язык) вопрос. (2) Нет значит нет. 2, пропущенное из 10, имеет ту же проблему, что и 2, пропущенное из 4: меньше уравнений, чем неизвестных.
Показать ещё 1 комментарий
0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню