Per esempio: date le lettere U R O T A T posso formare le parole
"TUO", "URTO", "TORTA", "ROTTA",etc...
Si tratta quindi di trovare prima tutte le parole che si possono
formare e poi confrontarle con una lista in un vocabolario per vedere
se sono accettate o meno.
Le parole che si possono formare sono le disposizioni semplici sul
numero di lettere dato:
numero possibili parole con 3 lettere = Disposizizione di 3 su 6 120
numero possibili parole con 4 lettere = DIsposizione di 4 su 6 = 360
.........
grazie
Beh, se usi un linguaggio adatto, la cosa e` molto semplice. Ad esempio,
in Prolog sono poche righe di codice. Questo e` il codice nel linguaggio
ECLiPSe Prolog:
parole(Lettere,Parola):-
atom_list(Lettere,Y),
sottolista(X,Y),
atom_list(Parola,X),
dato(Parola).
% Trova le possibili sottoliste
sottolista([],_).
sottolista([E|T],S) :- delete(E,S,R),
sottolista(T,R).
% Converte una parola in lista di lettere ...
atom_list(A,L) :-
nonvar(A), !,
atom_string(A,S),
string_list(S,L).
% ... e viceversa (da lista di lettere a parola)
atom_list(A,L) :-
string_list(S,L),
atom_string(A,S).
poi devi aggiungere le parole da un dizionario:
dato(precipitevolissimevolmente).
dato(polidesossiribonucleotide).
dato(polidesossiribonucleotidi).
dato(autoblindomitragliatrice).
...
basta scaricarsi un dizionario di parole di Italiano (ad esempio quello
che viene dato nei correttori ortografici open-source) e poi metterlo in
sintassi Prolog con un editor qualunque.
Questo e` il risultato:
[eclipse 27]: parole(urotat,X).
X = urto
Yes (0.00s cpu, solution 1, maybe more) ? ;
X = urta
Yes (0.00s cpu, solution 2, maybe more) ? ;
X = urtato
Yes (0.00s cpu, solution 3, maybe more) ? ;
X = urato
Yes (0.00s cpu, solution 4, maybe more) ? ;
X = urato
Yes (0.00s cpu, solution 5, maybe more) ? ;
X = urto
Yes (0.00s cpu, solution 6, maybe more) ? ;
X = urta
Yes (0.00s cpu, solution 7, maybe more) ? ;
X = urtato
Yes (0.00s cpu, solution 8, maybe more) ? ;
X = ruota
Yes (0.07s cpu, solution 9, maybe more) ? ;
....
Ci sono un po' di parole ripetute; cambiando un po' il codice si possono
eliminare.
Ciao,
Marco
<cut>
Se ho ben capito, prova a dare un'occhiata a Verbatron. Si trova
gratuitamente qui:
http://www.imc.pi.cnr.it/resta/verba.html
grazie