Zufallsstrings erstellen !

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zufallsstrings erstellen !

    Hi,
    also die Überschrift passt nicht wirklich aber mir ist nichts anderes eingefallen.
    Folgendes Problem :

    Ich habe eine Zeichenpool p = {'a', 'b', 'c', 'd'}
    Nun will ich z.b. Strings der Länge 3 aus den Zeichen aus diesem Pool erstellen.
    Ich will jedoch alle Möglichkeiten haben, die es gibt.
    Bsp.: aaa,aab,aac,aad, aba, ... , ddd
    Diese würde ich dann z.b. in eine ArrayList schreiben. In dem Fall wären das nun 64 Möglichkeiten.
    Ich würde es nun mit 3 For-Schleifen probieren.
    Das Problem ist jedoch, dass die Länge der Strings nicht vorgegeben ist. Das ganze soll also für jede Länge funktionieren. Wenn ich also Strings der Länge 10 will, müsste ich 10 For-Schleifen ineinander schachteln. Das wäre ziemlich doof.
    Jemand eine Idee, wie ich dieses Problem eleganter und vor allem einfacher lösen kann ?
  • Deinen Ansatz versteh ich nicht ganz:

    Quellcode

    1. for (i=0; i<p.length; i++) {
    2. dummy="";
    3. for(j=0; j<p.length; j++){
    4. dummy = p[i] + p[j];
    5. al.add(dummy);
    6. }
    7. }


    Aber die Idee ist doch die verschachtelten ForSchleifen:

    Quellcode

    1. for (i=0; i<p.length; i++)
    2. for (j=0; j<p.length; j++)
    3. for (k=0; k<p.length; k++)
    4. liste.add(p[i] + p[j] + p[k])


    in eine rekursive Funktion umzuformulieren:

    Quellcode

    1. function rek(depth, str) {
    2. for (var i=0; i<p.length; i++)
    3. if (depth==0)
    4. al.add(str+p[i]);
    5. else
    6. rek(depth-1, str+p[i]);
    7. }


    Sorry für den PseudoCode.