Аноны, есть конкретный, но сложный вопрос. Сразу скажу, что хочу реализовать шифр Вернама с его операцией XOR - для алфавита произвольной длины...
Итак, суть вопроса в следующем: 1. Есть алфавит длиной 2^N символов, включая нулевой символ. 2. При N = 5, 2^5 = 32, допустим каких-то 32 символа. 3. Алфавит представляет из себя массив символов ["А", "B", "C"... и т. д. ..., "Z"] - 26 символов. 4. Код каждого символа идёт по порядку, от нуля включительно до (2^N)-1. Поэтому, работать будем с кодами.
Теперь, делаем XOR всех кодов между собой и получаем таблицу, в которой равновероятно пробегаются все значения - и в строках и столбцах, ни разу не повторяясь при этом. Эта таблица XOR, она - подобна таблице Виженера, но значения здесь - идут крест накрекст, блоками. Основная фича в том, что ни в строках, ни в столбцах вы не найдёте два значения.
Теперь, берём какой-нибудь другой алфавит, с количеством символов отличным от 2^N символов Пусть это будет 26 символов английского алфавита, например. Делаем то же самое - получаем ту же таблицу, но урезанную. Внутри, есть значения больше 26, в частности - 31.
Ну и сам вопрос. Возможно ли сделать так, чтобы числа внутри таблицы - не повторялись? Ну и соответственно, если да, то как, а если нет - то по какой причине?
P.S. Попробовал ещё XNOR табличку сгенерировать, там вроде-бы ещё легче, но формулу я так и не смог подобрать...