Algoritmo di filtraggio per giochi di parole

2

Supponiamo di avere un numero di anagrammi per le stesse lettere, ad esempio:

avviso alterando integrante relativa triangolo

Supponiamo di avere un gioco in cui devi trovare tutti gli anagrammi, mettendo le lettere una alla volta in una griglia. Se metti "a" nella prima colonna in due righe diverse, allora "a" non è più valido in nessuna altra riga, perché tutte le parole che iniziano con "a" sono già state contabilizzate.

a.......
a.......

Tuttavia, se posizioni "a" nella prima posizione di una riga e "l" nella seconda posizione di un'altra, allora "a" nella prima posizione e "l" nella seconda posizione non è più possibile in qualsiasi altra riga.

a.......
.l......

Ancora più complessa, questa disposizione ...

a.......
.l......
.......g

... significa che "i" e "n" non possono essere posizionati nelle ultime posizioni 6 e 7 per nessuna delle restanti due righe, anche se non è stato ancora inserito alcun io o n.

Esiste già un algoritmo che posso seguire per determinare quali lettere sono possibili in quali posti, man mano che il gioco progredisce?

    
posta James Newton 22.04.2016 - 13:45
fonte

1 risposta

0

Ci sono diversi algoritmi scritti in Perl per risolvere gli anagrammi . Ad esempio, mentre il gioco procede, potresti essere in grado di trattare ogni riga come una parola e utilizzare il seguente metodo:

# find all anagrams of $word inside @words
my $obj = Word::Anagram->new;
my $word = 'nonda';
my @words = qw(donna  danno pluto toplu paperino minni des nodan );
my $anag = $obj->find_word_in($word, \@words); # return an array ref

Riferimenti

risposta data 18.08.2018 - 16:39
fonte

Leggi altre domande sui tag