Mezcla de palabras en la forma menos reconocible

13

Mi objetivo es presentarle al jugador una palabra codificada que debería reordenarse en su forma original:

OELHL -> HOLA

Quiero un algoritmo de codificación que tome cualquier palabra (> 3 o 4 letras, puede contener espacios) y la convierta en la forma menos reconocible.

Si bien mover aleatoriamente cada letra ciertamente funciona, noté que no todas las mezclas son iguales, algunas son más reconocibles que otras. Estoy publicando esta pregunta en caso de que alguien conozca un mejor algoritmo (tal vez basado en la lingüística) que ~~ garantice la forma menos reconocible.

usuario26471
fuente
3
¿Quizás podría intentar asegurarse de que ninguna letra permanezca en su posición original?
user1306322
3
"forma menos reconocible " ¿Cómo define eso? ¿Reconocible para quién?
Nicol Bolas
1
@Nicol Bolas es la forma aleatoria que hace que sea más difícil adivinar cuál es la palabra ordenada con solo mirarla.
user26471
44
@nicolbolas Creo que el punto de la pregunta es preguntar si ha habido alguna investigación o lo que sea a lo largo de esas líneas para formar las mejores prácticas generales para ese tipo de problema.
Tetrad

Respuestas:

26

A pesar de que la plpuoar "Cmairbgde Uirenvtisy" era un haox , probablemente se ha investigado mucho.

Te ssuty sohws taht arpapent lteter szie plys a rloe. El uso de wpckelgraihs trata de descifrar la relación entre los letrets para desenmascarar y el pniot en el que se encuentra un wrod es insuficiente.

Entonces, ¿cómo hacerlo no es un agloritmo? Tnihk trehe are smoe baisc stspe:

  1. Asisgn a szie vlaue a ecah leettr
  2. Para un gievn wdro:
    1. Recuerda el szie vaule para ecah leettr posioitn.
    2. Raniomdze las letras con las siguientes afirmaciones:
    3. No deje que el frist y el ist leettr se queden en su poción reticente.
    4. Intento de planear lertets no es el "solt" de su pequeño hijo.

Hay otras estadísticas que puedes emolpo, aunque no tengo que perseguir a los infieles, pero mi opinión:

  • Aptemtt para maxzmiie la ditsance Leveishtenn entre el mundo original y el mundo moderno. Tihs colud maximiza el diuficflty para reconocer el mundo. (Pehraps usa Seeuqnce Alimngent )
  • Invierta al que odia las letras, escuche las palabras, pero algunos sapces forman su posición onigiral. (¿Mbyae slhgitly clapó bacwkards wrod es mroe diffucilt?)

¿Necesitas una traducción?


Si bien el popular estudio "Cmabrigde Uinervtisy" probablemente fue un engaño , se han realizado algunas investigaciones sobre este tema.

Este estudio muestra que el tamaño de letra aparente juega un papel importante. El uso de wickelgraphs intenta describir la relación entre conjuntos de letras para comprender el punto en el que se entiende una palabra.

Entonces, ¿cómo desarrollar esto en un algoritmo? Creo que hay algunos pasos básicos:

  1. Asignar un valor de tamaño a cada letra
  2. Para una palabra dada:
    1. Recuerde el valor del tamaño para cada posición de la letra.
    2. Aleatorice las letras con las siguientes restricciones:
    3. No permita que la primera y la última letra permanezcan en sus respectivas posiciones.
    4. Intente evitar colocar letras en la "ranura" de su mismo tamaño.

Hay otras estrategias que puede emplear, aunque no tengo ninguna investigación que respalde lo siguiente, solo mis pensamientos:

  • Intente maximizar la distancia de Levenshtein entre la palabra original y la modificada. Esto podría maximizar la dificultad para reconocer la palabra. (Tal vez use la alineación de secuencia )
  • Invierta el orden de las letras antes de codificar, luego mueva cada letra unos pocos espacios desde su posición original. (¿Tal vez la palabra un poco revuelta es más difícil?)
MichaelHouse
fuente
55
Iba a +1 hasta que vi que proporcionaste una traducción. ;)
Trevor Powell
1
¡La mejor aplicación de un estilo para una respuesta NUNCA! :)
Tim Holt el
Nunca he jajaja tanto este año.
Blue Wizard
2

Esta no es una solución universal, pero a menudo si hay una palabra que es un anagrama en lugar de una codificación, esto hace que encontrar la palabra original sea más difícil. Una vez que su cerebro está bloqueado en la palabra original, es difícil sacar esa palabra de su cabeza.

es decir, decreto -> retroceder podría ser más difícil que ecdeer -> retroceder.

Otro punto (aunque no estoy seguro de cómo implementarlo) es eliminar pares de letras comunes. Si un anagrama tiene 'q' y 'u' en la respuesta, desea separarlos en la pregunta. otros ejemplos pueden incluir 'th', 'ing', etc. Por el contrario, si las letras 't' y 'h' están en la respuesta pero no una al lado de la otra, ponerlas juntas en la pregunta lo hace más difícil; tu cerebro piensa automáticamente en palabras con 'th' en ellas.

timcdlucas
fuente