pspupgrader55, разумеется, поэтому и задал вопрос про постановку/формулировку вашего вопроса.
Кстати, в каком учебном заведении (если ни секрет, конечно) дают такие "размытые" и неоднозначные темы дипломных проектов?
Роман, номер позиции "выдавлеваемого" (в начало списка) символа всегда соответствует входному символу. Что означает, что "цепь" на каждом шаге (при новом входном символе) - постоянна и однозначна в обе стороны.
При шифровании нам нужно скоммутировать между собой значения нужных пересечения граней внутри куба в одну непрерывную "цепь", и мы получим путь следования как для шифрования, так и для дешифровки за O(n).
Роман, на каком шаге непонятно? (распиши подробнее шаги: как ты понимаешь).
Уточню: три грани куба: входной символ, позиция имеющегося символа, порядковый номер входного (шаг итерации). Их общее пересечение однозначно определяет следующий символ на каждом шаге. Определив однократно зависимости таких сочетаний, используем куб для линейного шифрования и дешифрования текста.
WapSter, я точно никогда не применял.. зачем интересно такие вопросы задают на собеседовании?) Можно ещё что-нить спросить никогда неиспользуемое, чтобы отсеить тех, кто не нужен под предлогом: "не прошёл тестирование на собеседовании"...)
Согласен. Это именно она.
Из чего видно, что каждая перестановка однозначно определена в таком дереве.
Это означает, что как для прямого поиска (при шифровке), так и для обратного поиска (при дешифровке), существует некая формализованная и строго однозначная зависимость в виде f(s,m,n), определяющая точный порядок соответствия в обе стороны.
А реализация после нахождения этой формулы - это уже линейная сложность.
(Верно?)