Це набагато досконаліше, ніж Як рандомізувати букви в слові та « Кембриджська транспозиція» через правило про те, якими літерами можна міняти місцями. Тут не вистачить простого регулярного виразка.
Добре відомо, що текст все ще можна прочитати, поки внутрішні його слова були скрембліровані до тих пір, поки їхні перші та останні букви плюс їх загальні контури залишаються постійними. З огляду на текст для друку Ascii + Newline, скремтуйте кожне слово відповідно до цих правил:
Скремблінг повинен бути (псевдо) випадковим.
Слово - це послідовність латинських символів, від А до Я.
Лише початкові літери коли-небудь будуть великими літерами.
Перша та остання букви повинні залишатися недоторканими.
Під час кодування, лише листи в одній із наступних груп можуть обмінюватися місцями:
acemnorsuvwxz
bdfhkl
gpqy
it
j
(залишається на місці)
Приклад
Srcmable wrods, поки psrrnveieg їх oeiltnus
Добре відомо, що txet все ще можна прочитати, поки внутрішні частини його wrods були зруйновані, до тих пір, поки їх fisrt і останні букви плюс їх ovaerll ontliues raemin не можуть. Враховуючи patnirlbe Acsii + Nwnliee txet, слово samrclbe ecah anoccdirg до цих релюсів:
Smncrbliag повинен бути (pusedo) rondam.
Врод - це послідовність латинських креретів, A thurogh Z.
Підвищуватимуться лише ті, що починаються з першокласників.
Фіскальний та лісатський риси повинні залишатися непрограшними.
Якщо sarnclbimg, лише літери, що знаходяться в одному з guorps fwllnoiog, можуть вимкнути плаценти:
aneusvrowxmcz
bhkfdl
gqpy
it
j
(залишається в plcae)Emxaple
t
з групи 2? А може, ввести t
в групу 4 с i
?
printable
/ patnirlbe
не зовсім читабельна. Я думаю i
/ t
винна в / swap. Хм ... paintrlbe
Ні, це теж не допомогло. Це, мабуть, pr
/ pa
swap. Контур підтримує, але я думаю , що я прочитав «PR» і «па» як семантичний (?) 1 лист. prtnialbe
Ага так. Це і вдалося. Не впевнений, що я можу запропонувати виправити алгоритм.
t
повинна бути коротшою,h
хоча багато людей так не пишуть.