Скремблирование слова в наименее узнаваемую форму

13

Моя цель - подарить игроку зашифрованное слово, которое следует переупорядочить обратно в исходную форму:

OELHL -> ПРИВЕТ

Мне нужен алгоритм скремблирования, который берет любое данное слово (> 3 или 4 буквы, может содержать пробелы) и превращает его в наименее узнаваемую форму.

Хотя произвольное перемещение каждой буквы, безусловно, работает, я заметил, что не все перемешивания одинаковы, некоторые более узнаваемы, чем другие. Я публикую этот вопрос на тот случай, если кто-то знает лучший алгоритм (возможно, основанный на лингвистике), который ~~ гарантирует наименее узнаваемую форму.

user26471
источник
3
Может быть, вы могли бы убедиться, что ни одна буква не остается в исходном положении?
user1306322
3
" наименее узнаваемая форма " Как вы это определяете? Узнаваем для кого?
Николь Болас
1
@Nicol Bolas - это перемешанная форма, которая делает наиболее трудным угадать, что такое упорядоченное слово, просто взглянув на него.
user26471
4
@nicolbolas Я думаю, суть вопроса в том, чтобы спросить, проводилось ли какое-либо исследование или что-то в этом роде, чтобы сформировать общие передовые практики для решения такого рода проблемы.
Тетрад

Ответы:

26

В то время, как он работал над "Cmairbgde Uirenvtisy", он был просто хаосом , он был более успешным, чем когда-либо.

Сюдю Сойс, Арпапент, Стеф Пьялс Рло. Использование атрибутов wpckelgraihs для отмены отношений между частями писем, чтобы распутать, и pniot в то время, когда wrod недооценен.

Так как же быть аглоритмом? Я трёхкх, это бахи сцпе

  1. Asisgn Szie Vlaue к Eah Leettr
  2. Для gievn wdro:
    1. Помните, что у вас есть возможность сделать это.
    2. Раниомдзе буквы с последующими решениями:
    3. Не тратьте время на ремиссию
    4. Попытка aiovd planicg lertets itno «соль» их smae szie.

Есть и другие способы, которыми вы можете воспользоваться, хотя я и не собираюсь спускать крылатых крыльев, но вот моя мысль:

  • Относительно maxzmiie разрыв Левейштенна между oiigrnal и modefiid wrod. Это увеличивает максимальную пользу для восстановления мира. (Pehraps используют Seeuqnce Alimngent )
  • Поменяйте местами запах ячеек, пока несколько ячеек не образуют его онигиральное положение. (Mbyae лениво взбалтываемый задницей является Mroe Diffucilt?)

Нужен перевод?


Хотя популярное исследование «Cmabrigde Uinervtisy», скорее всего, было обманом , было проведено некоторое исследование по этой теме.

Это исследование показывает, что кажущийся размер букв играет роль. Использование wickelgraphs пытается описать отношения между наборами букв, чтобы понять точку, в которой слово понимается.

Итак, как превратить это в алгоритм? Я думаю, что есть несколько основных шагов:

  1. Назначьте значение размера каждой букве
  2. Для данного слова:
    1. Запомните значение размера для каждой позиции буквы.
    2. Перемешайте буквы со следующими ограничениями:
    3. Не позволяйте первой и последней букве оставаться в соответствующей позиции
    4. Старайтесь не помещать буквы в «слот» одинакового размера.

Есть и другие стратегии, которые вы можете использовать, хотя у меня нет исследований, подтверждающих следующее, только мои мысли:

  • Попытайтесь увеличить расстояние Левенштейна между исходным и измененным словом. Это может максимально затруднить распознавание слова. (Возможно использовать выравнивание последовательностей )
  • Перед скремблированием поменяйте порядок букв, затем переместите каждую букву на несколько пробелов от ее первоначального положения. (Может быть, немного зашифрованное задом наперед сложнее?)
MichaelHouse
источник
5
Я собирался +1, пока не увидел, что вы предоставили перевод. ;)
Тревор Пауэлл
1
Лучшее приложение стиля для ответа когда-либо! :)
Тим Холт
У меня никогда не было так сложно в этом году.
Синий Волшебник
2

Это не универсальное решение, но часто, если есть слово, которое является анаграммой, а не схваткой, это затрудняет поиск оригинального слова. Как только ваш мозг заперт на оригинальное слово, трудно выбросить это слово из головы.

т. е. декрет -> отступить может быть сложнее, чем экдера -> отступить.

Еще один момент (хотя я не уверен, как это реализовать) - удалить общие пары букв. Если в ответе есть анаграмма «q» и «u», вы хотите разделить их в вопросе. другие примеры могут включать «th», «ing» и т. д. И наоборот, если буквы «t» и «h» находятся в ответе, но не соседствуют друг с другом, их сложность в вопросе усложняет задачу; ваш мозг автоматически думает о словах, в которых есть «th».

timcdlucas
источник