Codificação da palavra na forma menos reconhecível

13

Meu objetivo é apresentar ao jogador uma palavra embaralhada que deve ser reordenada de volta à forma original:

OELHL -> OLÁ!

Eu quero um algoritmo de embaralhamento que pega qualquer palavra (> 3 ou 4 letras, pode conter espaços) e a transforma na forma menos reconhecível.

Embora mover aleatoriamente todas as letras funcione, notei que nem todos os embaralhes são iguais, alguns são mais reconhecíveis que outros. Estou postando esta pergunta caso alguém conheça um algoritmo melhor (talvez baseado em linguística) que garanta uma forma menos reconhecível.

user26471
fonte
3
Talvez você possa tentar garantir que nenhuma carta permaneça em sua posição original?
user1306322
3
"forma menos reconhecível " Como você define isso? Reconhecível para quem?
Nicol Bolas 23/03
1
@Nicol Bolas é a forma embaralhada que torna mais difícil adivinhar qual é a palavra ordenada apenas olhando para ela.
user26471
4
@nicolbolas Acho que o objetivo da pergunta é perguntar se houve alguma pesquisa ou o que for nesse sentido para formar as melhores práticas gerais para esse tipo de problema.
Tetrad 23/03

Respostas:

26

Embora a maior parte dos direitos "Cmairbgde Uirenvtisy" fosse apenas um haox , ela foi ainda mais pesquisada no momento.

Esse tipo de serviço mostra que arpapent lteter szie pyals e rloe. O uso de wpckelgraihs tenta descrever o relacionamento entre as letras e o subnível, e o problema em que uma palavra está subutilizada.

Então, como desviá-lo para um agloritmo? Eu tnihk trehe são smoe baisc stspe:

  1. Asisgn a szie vlaue to ecah leettr
  2. Para um gievn wdro:
    1. Rembmeer the szie vaule for ecah leettr posioitn.
    2. Raniomdze as letras com as resrtictions seguintes:
    3. Não faça o remist e lsat leettr para remian em sua poção retpecsive
    4. Tentativa de ler planilhas e não o "solt" de seus smae szie.

Há outras estratégias que você pode empregar, pois não tenho a menor chance de atacar os pés, apenas a minha ideia:

  • Procure maximizar a ditância Leveishtenn entre a escrita estrangeira e a modificação. Esse tipo de coluna maximiza o fluxo de dados para o reconhecimento da corrosão. (Pehraps usam Seeuqnce Alimngent )
  • Inverta o odrer do ltteers berofe scramilbng, o mvoe ecah ltteer apenas alguns pontos formam sua posição onigiral. (Mbyae slwgitly sclambred bacwkards corroído é mroe diffucilt?)

Precisa de uma tradução?


Embora o popular estudo "Cmabrigde Uinervtisy" tenha sido provavelmente uma farsa , houve algumas pesquisas sobre esse tópico.

Este estudo mostra que o tamanho aparente da letra desempenha um papel. O uso de wickelgraphs tenta descrever o relacionamento entre conjuntos de letras para entender o ponto em que uma palavra é entendida.

Então, como desenvolver isso em um algoritmo? Eu acho que existem alguns passos básicos:

  1. Atribua um valor de tamanho a cada letra
  2. Para uma determinada palavra:
    1. Lembre-se do valor do tamanho de cada posição da letra.
    2. Aleatorize as letras com as seguintes restrições:
    3. Não permita que a primeira e a última letra permaneçam em suas respectivas posições
    4. Tente evitar colocar letras no "slot" do mesmo tamanho.

Existem outras estratégias que você pode empregar, embora eu não tenha nenhuma pesquisa para fazer o seguinte, apenas meus pensamentos:

  • Tente maximizar a distância de Levenshtein entre a palavra original e a palavra modificada. Isso poderia maximizar a dificuldade de reconhecer a palavra. (Talvez use Alinhamento de sequência )
  • Inverta a ordem das letras antes de embaralhar, depois mova cada letra apenas alguns espaços da sua posição original. (Talvez a palavra um pouco embaralhada para trás seja mais difícil?)
MichaelHouse
fonte
5
Eu estava marcando +1 até que você forneceu uma tradução. ;)
Trevor Powell
1
Melhor aplicação de um estilo para uma resposta NUNCA! :)
Tim Holt
Eu nunca ri tanto esse ano.
Blue Wizard
2

Esta não é uma solução universal, mas, muitas vezes, se houver uma palavra que seja um anagrama e não uma disputa, isso torna mais difícil encontrar a palavra original. Uma vez que seu cérebro está preso à palavra original, é difícil tirar essa palavra da sua cabeça.

isto é, decreto -> retroceder pode ser mais difícil do que a ecdeer -> retroceder.

Um outro ponto (embora não tenha certeza de como implementá-lo) é remover pares comuns de letras. Se um anagrama tem 'q' e 'u' na resposta, você deseja separá-los na pergunta. outros exemplos podem incluir 'th', 'ing' etc. Por outro lado, se as letras 't' e 'h' estiverem na resposta, mas não próximas umas das outras, colocá-las juntas na pergunta torna mais difícil; seu cérebro pensa automaticamente nas palavras com 'th' nelas.

timcdlucas
fonte