Brouillage du mot dans la forme la moins reconnaissable

13

Mon objectif est de présenter au joueur un mot brouillé qui devrait être réordonné dans la forme originale:

OELHL -> BONJOUR

Je veux un algorithme de brouillage qui accepte n'importe quel mot (> 3 ou 4 lettres, peut contenir des espaces) et le transforme en la forme la moins reconnaissable.

Bien que le déplacement aléatoire de chaque lettre fonctionne certainement, j'ai remarqué que tous les mélanges ne sont pas égaux, certains sont plus reconnaissables que d'autres. Je poste cette question au cas où quelqu'un connaîtrait un meilleur algorithme (peut-être basé sur la linguistique) qui ~~ garantit la forme la moins reconnaissable.

user26471
la source
3
Vous pourriez peut-être essayer de vous assurer qu'aucune lettre ne reste dans sa position d'origine?
user1306322
3
" forme la moins reconnaissable " Comment définissez-vous cela? Reconnaissable à qui?
Nicol Bolas
1
@Nicol Bolas est la forme mélangée qui rend le plus difficile de deviner quel est le mot ordonné en le regardant simplement.
user26471
4
@nicolbolas Je pense que le but de la question est de demander s'il y a eu des recherches ou quoi que ce soit dans ce sens pour former les meilleures pratiques générales pour ce type de problème.
Tetrad

Réponses:

26

Wihle le plpuoar "Cmairbgde Uirenvtisy" sduty était lkiely un haox , trehe a été smoe resaerch itno tihs tpoic.

Tihs sduty sohws taht arpapent lteter szie pyals a rloe. L'utilisation d' attributs wpckelgraihs pour dénigrer la relation entre les stes de letrets et la lutte contre le pniot à laquelle une torsion est insuffisante.

Alors, comment le découvrir sans un aglorithme? Je tnihk trehe sont smoe baisc stspe:

  1. Asisgn a szie vlaue à ecah leettr
  2. Pour un gievn wdro:
    1. Rembmeer le szie vaule pour ecah leettr posioitn.
    2. Raniomdze les lettres avec les resrtictions suivantes:
    3. Don't aollw the frist and lsat leettr to remian in tehir retpecsive potision
    4. Tenter de dessiner aiovd planicg itno le "solt" de leur smae szie.

Il y a d'autres stratégies que vous pouvez utiliser, je n'ai pas besoin de raseerch pour améliorer les performances, mais mon tsoughth:

  • Aptemtt à maxzmiie la distance Leveishtenn entre la couronne oiigrnale et modefiid. Tihs colud maxiimze le diuficflty pour reczgnioing le wrod. (Les Pehraps utilisent Seeuqnce Alimngent )
  • Inverser l'odeur des ltteers berofe scramilbng, tehn mvoe ecah ltteer jsut quelques sapces forment sa position onigirale. (Mbyae slhgitly sclambred bacwkards wrod is mroe diffucilt?)

Besoin d'une traduction?


Alors que la populaire étude "Cmabrigde Uinervtisy" était probablement un canular , il y a eu quelques recherches sur ce sujet.

Cette étude montre que la taille apparente des lettres joue un rôle. L'utilisation de wickelgraphs tente de décrire la relation entre des ensembles de lettres pour comprendre le moment où un mot est compris.

Alors, comment développer cela en un algorithme? Je pense qu'il y a quelques étapes de base:

  1. Attribuez une valeur de taille à chaque lettre
  2. Pour un mot donné:
    1. N'oubliez pas la valeur de taille pour chaque position de lettre.
    2. Randomisez les lettres avec les restrictions suivantes:
    3. Ne laissez pas la première et la dernière lettre rester dans leur position respective
    4. Essayez d'éviter de placer des lettres dans la «fente» de leur même taille.

Il existe d'autres stratégies que vous pouvez utiliser, même si je n'ai aucune recherche à l'appui de ce qui suit, juste mes pensées:

  • Essayez de maximiser la distance Levenshtein entre le mot original et le mot modifié. Cela pourrait maximiser la difficulté de reconnaître le mot. (Peut-être utiliser l' alignement de séquence )
  • Inversez l'ordre des lettres avant de brouiller, puis déplacez chaque lettre de quelques espaces seulement par rapport à sa position d'origine. (Peut-être que le mot légèrement brouillé en arrière est plus difficile?)
MichaelHouse
la source
5
J'allais à +1 jusqu'à ce que je voie que vous avez fourni une traduction. ;)
Trevor Powell
1
Meilleure application d'un style à une réponse JAMAIS! :)
Tim Holt
Je n'ai jamais lol'd si fort cette année.
Blue Wizard
2

Ce n'est pas une solution universelle, mais souvent s'il y a un mot qui est une anagramme plutôt qu'une brouille, cela rend la recherche du mot original plus difficile. Une fois que votre cerveau est verrouillé sur le mot d'origine, il est difficile de sortir ce mot de votre tête.

c'est-à-dire que le décret -> reculer pourrait être plus difficile que ecdeer -> recede.

Un autre point (même si je ne sais pas comment l'implémenter) est de supprimer les paires de lettres courantes. Si une anagramme a «q» et «u» dans la réponse, vous voulez les séparer dans la question. d'autres exemples peuvent inclure «th», «ing», etc. À l'inverse, si les lettres «t» et «h» sont dans la réponse mais pas l'une à côté de l'autre, les mettre ensemble dans la question rend la tâche plus difficile; votre cerveau pense automatiquement aux mots avec «th» en eux.

timcdlucas
la source