Скручування слова в найменш впізнавану форму


13

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

OELHL -> HELLO

Я хочу алгоритм скремблювання, який приймає будь-яке задане слово (> 3 або 4 букви, може містити пробіли) і перетворює його в найменш розпізнавану форму.

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


3
Може, ви могли б спробувати переконатися, що жодна літера не залишається у вихідному положенні?
user1306322


3
" найменш впізнавана форма " Як ви це визначаєте? Впізнаваний кому?
Нікол Болас

1
@Nicol Bolas - це перетасована форма, що робить найскладнішим здогадатися, що таке впорядковане слово, просто подивившись на нього.
user26471

4
@nicolbolas Я думаю, що питання полягає в тому, щоб запитати, чи було проведено якесь дослідження або що б там не було, щоб сформувати загальні найкращі практики для подібної проблеми.
Тетрад

Відповіді:


26

Вілле плуоар "Cmairbgde Uirenvtisy" sduty був lkiely haox , trehe було smoe resaerch itno tihs tpoic.

Tihs sduty sohws taht arpapent lteter szie pyals a rloe. Застосування wpckelgraihs має намір спробувати декласирувати стосунки окупованих стернів леретів, щоб розрізати і піоніти, якщо врода не підкреслена.

Тож як dlveeop tihs це аглоритм? I tnihk trehe are smoe baisc stspe:

  1. Asisgn a szie vlaue to ecah leettr
  2. Для gievn wdro:
    1. Rembmeer szie vaule for ecah leettr posioitn.
    2. Літери Раніомдзе, що містять рецензії:
    3. Не перестаньте пильнувати і не шукати, щоб переповнитись репесивним путісом
    4. Спроба aiovd planicg підтверджує "соль" їхнього smae szie.

Техерегіоз є загальним, що ви можете взяти, тому що я не маю расеру, щоб розчаруватись, я мою думку:

  • Аптемтт до maxzmiie Leveishtenn ditsance між oiigrnal і modefiid wrod. Tih colud максимізують трудність для відновлення вродження. (Pehraps використовують Seeuqnce Alimngent )
  • Зворотний відрізок ltteers berofe scramilbng, tehn mvoe ecah ltteer jsut кілька сапсів утворюють його онігіральне положення. (Mbyae slhgitly скрембліровані баскеткардами wro is mroe diffucilt?)

Вам потрібен переклад?


Хоча популярне дослідження "Cmabrigde Uinervtisy", ймовірно, є підробкою , було проведено деякі дослідження цієї теми.

Це дослідження показує, що очевидний розмір літери відіграє певну роль. Застосування вікелеграфів намагається описати взаємозв'язок між наборами літер, щоб зрозуміти, в якому розуміється слово.

Тож як розробити це в алгоритм? Я думаю, що є кілька основних кроків:

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

Є й інші стратегії, якими ви можете скористатися, хоча я не маю досліджень, щоб підкріпити наступне, лише мої думки:

  • Спроба максимально збільшити відстань Левенштейна між початковим і модифікованим словом. Це може збільшити труднощі з розпізнаванням цього слова. (Можливо, використовуйте вирівнювання послідовності )
  • Переверніть порядок букв перед тим, як скрембліруйте, а потім перемістіть кожну букву лише на кілька пробілів від її початкового положення. (Може, трохи скремблірованное назад слово складніше?)

5
Я збирався +1, поки не побачив, що ви надали переклад. ;)
Тревор Пауелл

1
Найкраще застосування стилю для відповіді ВСЕ! :)
Тім Холт

Я ніколи не хотів так важко цього року.
Blue Wizard

2

Це не універсальне рішення, але часто, якщо є слово, яке є анаграмою, а не суперечками, це ускладнює пошук оригінального слова. Після того, як ваш мозок зафіксується на початковому слові, важко дістати це слово з голови.

тобто декрет -> повернути може бути важче, ніж екдер -> повернути.

Ще одним моментом (хоча я не впевнений, як це реалізувати) є видалення загальних пар букв. Якщо в анаграмі є відповіді 'q' і 'u', ви хочете розділити їх у запитанні. Інші приклади можуть включати "th", "ing" і т. д. І навпаки, якщо букви "t" і "h" є у відповіді, але не поруч одна з одною, їх складність у питанні ускладнює; ваш мозок автоматично думає про слова, що містять у них слово 'th'.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.