Originariamente inviata da
vic53
-----------------------------------
Ciao, posso darti un suggerimento...
quando prelevi il carattere dalla stringa, cancellalo cosi da avere una stringa senza il carattere
di cui non vuoi ripetere la composizione della nuova stringa...
alla fine dei valori otterrai una stringa che è probabilmente la stessa stringa anagrammata in modo random.
Ricordati che il ciclo deve ricominciare usando la nuova lunghezza della stringa decurtata....
tutto qui poi il codice e un lavoro accademico...
per esercizio ho provato a scrivere qualcosa di simile
codice:
function Anagramma(parola)
{
var L = parola.length;
var txt="", tmp = "";
while ( L > 0){
var x = Math.floor(Math.random()*L);
var p = parola.charAt(x); // estraggo la lettera
document.write("<br>CAR:" + p + ", POS: " + x);
txt = txt + p;
tmp = parola.substr(0,x)+ parola.substr(x+1,L - x);
parola=tmp;
L=parola.length;
document.write("<br>parola="+tmp+" lung."+L);
//if (L<1) {break;}
}
document.write("<br>anagramma ="+txt);
alert(txt);
}
passandogli una parola qualsiasi, ci sono dei display per vedere la sequenza mentre toglie i caratteri..
ciao