Existem muitas maneiras de gerar palavras aleatórias. Você pode pegar sílabas aleatórias de um conjunto, usar n-tuplas, provavelmente redes neurais (o que elas não podem fazer?), Alternar entre consoantes e vogais, etc. O método em que esse desafio se baseia é de longe o pior . Ele usa uma cadeia de Markov para gerar palavras aleatórias. Se você conhece cadeias Markov, provavelmente sabe por que esse método é tão terrível.
Se você quiser ler sobre as cadeias de Markov, clique aqui .
Seu programa irá inserir uma ou mais palavras e gerar uma única palavra aleatória, através do método de uma cadeia de Markov ponderada. Como isso provavelmente não faz sentido para ninguém além de mim, aqui está uma explicação através do uso de uma imagem da cadeia de Markov com a entrada de abba
:
(Todos os pesos das bordas são iguais para todas as imagens) Seu programa produzirá o caminho através de uma cadeia de Markov com base no texto de entrada. Como você pode ver, existe uma chance de 1/2 da saída a
, 1/8 de chance aba
, 1/16 de chance abba
, 1/32 de chance ababa
, etc.
Aqui estão alguns outros exemplos de cadeias de Markov:
yabba dabba doo
wolfram
supercalifragilisticexpialidocious
Se você quiser mais exemplos, use isso . (Eu trabalhei demais nisso)
Detalhes do desafio:
- A entrada pode ser considerada como uma lista de cadeias ou como uma cadeia separada por espaço, vírgula ou nova linha
- Você pode assumir que todas as palavras serão totalmente minúsculas, sem pontuação (ASCII 97-122)
- Você pode escrever um programa ou uma função
- Para testar, você provavelmente pode inserir os exemplos e ver se todas as entradas estão alinhadas com as cadeias de Markov
Isso é código-golfe , então seu programa é pontuado em bytes.
Deixe-me saber se alguma parte disso não está clara, e tentarei fazer com que faça mais sentido.
b
que você não possa produzir um duplo b
. Além disso, quando você alcança um b
, não parece possível retorne ao start
para produzir as outras palavras). Eu acredito que você deve esclarecer quais são os requisitos ...
yabba dabba doo
é um acidente. Vou consertar o mais rápido possível. Quanto a não poder voltar ao início, você gera apenas uma palavra a partir de um determinado conjunto de palavras. Isso esclarece?