Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    sequenza di lettere casuale non ripetuta

    ciao a tutti ho un problema da una stringa volevo estrarre i suoi caratteri in modo casuale
    aggiungendoli a un altra variabile
    solo che vorrei inserire tutti le lettere della stringa non caratteri gia ripetuti
    io ho fatto questo magari sbagliando sono agli inizi


    function mischia(parola)
    {
    var l = parola.length;
    var n = 0;
    var txt = "";

    while ( n < l)
    {
    var x = Math.floor(Math.random()*l);
    var p = parola.charAt(x); // estraggo la lettera
    var pos = txt.indexOf(p);// controllo se ce nella stringa da costruire

    if ( pos == -1)
    {
    txt = txt + p; // se non ce l aggiungo
    }
    else {
    var x = Math.floor(Math.random()*l); // altrimenti ne estraggo un altra
    txt = parola.charAt(x); // qua ce l errore non riesco aggiungerla alla stringa
    }
    n++;
    }
    return (txt);
    }

    grazie in anticipo a chi mi puoi aiutare

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590
    Quote Originariamente inviata da david666 Visualizza il messaggio
    ciao a tutti ho un problema da una stringa volevo estrarre i suoi caratteri in modo casuale
    aggiungendoli a un altra variabile
    solo che vorrei inserire tutti le lettere della stringa non caratteri gia ripetuti
    io ho fatto questo magari sbagliando sono agli inizi


    function mischia(parola)
    {
    var l = parola.length;
    var n = 0;
    var txt = "";

    while ( n < l)
    {
    var x = Math.floor(Math.random()*l);
    var p = parola.charAt(x); // estraggo la lettera
    var pos = txt.indexOf(p);// controllo se ce nella stringa da costruire

    if ( pos == -1)
    {
    txt = txt + p; // se non ce l aggiungo
    }
    else {
    var x = Math.floor(Math.random()*l); // altrimenti ne estraggo un altra
    txt = parola.charAt(x); // qua ce l errore non riesco aggiungerla alla stringa
    }
    n++;
    }
    return (txt);
    }

    grazie in anticipo a chi mi puoi aiutare
    -----------------------------------
    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...
    ciao
    Vic53

  3. #3
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    -----------------------------------
    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...
    ciao
    grazie del consiglio ci proverò ciao

  4. #4
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    590
    Quote Originariamente inviata da vic53 Visualizza il messaggio
    -----------------------------------
    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
    Vic53

  5. #5
    dopo il tuo consiglio ci ero vicino ma ho avuto poco tempo x provare cm grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.