Griever: Möglichkeiten mit schleife erzeugen.

Hi. Ich habe folgendes:

<script language="JavaScript">
function bearbeiten(zeichensatz) {
  zeichensatz = zeichensatz.split("");
  var zeichen=zeichensatz.length;
  var moeglichkeiten = Math.pow(zeichen,zeichen);
  alert(moeglichkeiten)
  if(moeglichkeiten>=256)
  {
    if(confirm("Möchten Sie die " + moeglichkeiten + " aufgeführt haben?\nDies kann einige Zeit in Anspruch nehmen!"))
    {
      outputtingMoeglichkeiten(zeichensatz)
    }
    else
    {
    return false;
    }
  }
  else
  {
    if(confirm("Möchten Sie die " + moeglichkeiten + " aufgeführt haben?\nDies dauert einige Sekunden ..."))
    {
      outputtingMoeglichkeiten(zeichensatz)
    }
    else
    {
    return false;
    }
  }
}
function outputtingMoeglichkeiten(zeichensatz_uebergeben)
{
  var z = zeichensatz_uebergeben;
  var moeglichkeitenarray = new Array();
  // ?????????????
  document.getElementById("output").value = moeglichkeitenarray
}
</script>
<input type="text" value="ABC" maxlength="8" id="zeichen"></input><br>
<input type="button" value="Möglichkeiten prüfen" onClick="bearbeiten(document.getElementById('zeichen').value)"></input>
<textarea rows=20 id="output" cols=50></textarea>

Der User übergibt eine bis zu 8 Zeichen lange Zeichenkette an das Script weiter. Dabei möchte ich nun, dass die Funktion outputtingMoeglichkeiten(...) alle möglichen Kombinationen erzeugt und in ein Array schreibt (bei den ?????????????).

Da ich weiß, dass das viel Zeit in anspruch nimmt, habe ich eine Abfrage mit der Information darüber mit eingebaut. Sollte auf Abbruch geklickt werden, wird die Funktion halt nicht aufgerufen und false zurückgegeben (was eigentlich nicht notwendig wäre).

Bitte fragt nicht nach meinen Beweggründen für so was. Ich möchte gerne eine (oder mehrere) Antworten und keine Fragen darauf.

Vielen dank.

MFG
Griever

  1. Hi there,

    Bitte fragt nicht nach meinen Beweggründen für so was. Ich möchte gerne eine (oder mehrere) Antworten und keine Fragen darauf.

    Eine Frage wirst Du Dir zumindest gefallen lassen müssen: Worauf willst Du eine Antwort?

    1. ich habe z. B.

      A B C

      und möchte daraus:

      A C B
      B A C
      B C A
      C A B
      C B A

      sodass man also alle möglichkeiten der Reihenfolge dieser Zeichen zusammenstellen kann. und das möchte ich dann noch in ein Array geschrieben haben, damit ich das Array einfach in das Textfeld mit der Id "output" abgeben kann.

      Ich hoffe, dass das jetzt verstanden wurde ...

      1. Hi there,

        sodass man also alle möglichkeiten der Reihenfolge dieser Zeichen zusammenstellen kann. und das möchte ich dann noch in ein Array geschrieben haben, damit ich das Array einfach in das Textfeld mit der Id "output" abgeben kann.

        Ich habe Dich schon verstanden, aber ich verstehe Deine Frage noch immer nicht; Du hast bis jetzt nur geschrieben, was Du möchtest. Soweit so klar. Aber was willst Du jetzt wissen?

        Daß es mit einer Schleifenbildung funktioniert, hast Du ja schon selbst erkannt. Erwartest Du, daß ich oder ein anderer Dir jetzt eine fertige Lösung hinschreiben oder was?

        Ich hoffe, dass das jetzt verstanden wurde ...

        Ah, was wenn nicht? Irgendwie vermeine ich hier eine leise Drohung herauszuhören ;)

        1. Hi there,

          sodass man also alle möglichkeiten der Reihenfolge dieser Zeichen zusammenstellen kann. und das möchte ich dann noch in ein Array geschrieben haben, damit ich das Array einfach in das Textfeld mit der Id "output" abgeben kann.

          Ich habe Dich schon verstanden, aber ich verstehe Deine Frage noch immer nicht; Du hast bis jetzt nur geschrieben, was Du möchtest. Soweit so klar. Aber was willst Du jetzt wissen?

          Daß es mit einer Schleifenbildung funktioniert, hast Du ja schon selbst erkannt. Erwartest Du, daß ich oder ein anderer Dir jetzt eine fertige Lösung hinschreiben oder was?

          Nein. Das habe ich nicht verlangt. Gibt es dafür vielleicht sowas wie Beispiele oder Hilfe?

          Ich hoffe, dass das jetzt verstanden wurde ...

          Ah, was wenn nicht? Irgendwie vermeine ich hier eine leise Drohung herauszuhören ;)

          Dass sich daraus eine Drohung herausspricht, war nicht geplant. Es war nur zur Absicherung eine Frage, welche nicht beantwortet werden müsse. Um das Mißverständnis aus dem Weg zu räumen: Die Zeile verwerfe ich diesmal.

          MFG
          Griever

  2. Hello out there!

    <script language="JavaScript">

    Fehler: Vorgeschriebenes type-Attribut fehlt. Du möchtest nochmal nachlesen, wie man <http://de.selfhtml.org/javascript/intro.htm#javascriptbereicheJavaScript-Bereiche in HTML definiert>.

    function outputtingMoeglichkeiten(zeichensatz_uebergeben)
    {
      var z = zeichensatz_uebergeben;

    Was soll das? Siehe diesen Thread.

    Der User übergibt eine bis zu 8 Zeichen lange Zeichenkette an das Script weiter. Dabei möchte ich nun, dass die Funktion outputtingMoeglichkeiten(...) alle möglichen Kombinationen erzeugt

    Es bleibt unklar, was du damit meinst. Permutationen?

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Das mit der validation ist mal drauf ges....... ok?

      Ich möcht nur wissen, ob es möglich ist, z. B.

      var z = new Array("A", "B", "C")

      durch eine Schleife in alle möglichen Kombinationen zu wandeln. Das ist jedoch auf die reihenfolge der Zeichen bezogen.

      Dabei sollte die Schleife auf die anzahl der übergebenen Zeichen variiert arbeiten können.

      Ist sowas möglich ...?

      1. hi,

        Ich möcht nur wissen, ob es möglich ist, z. B. [...]
        Ist sowas möglich ...?

        Und jetzt - möchtest du ein "Ja" oder "Nein" als Antwort?

        Bittesehr:
        Ja.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hm. Anscheinen war ich jetzt zu aggressiv. Sorry.

          Kann ich vielleicht fragen, ob es ein Beispiel oder Information darüber gibt und ob ich diese haben könnte ...? Bitte?

          MFG
          Griever

      2. Hello out there!

        Das mit der validation ist mal drauf ges....... ok?

        Nein, das ist nicht OK. Gaz und gar nicht.

        var z = new Array("A", "B", "C")
        durch eine Schleife in alle möglichen Kombinationen zu wandeln. Das ist jedoch auf die reihenfolge der Zeichen bezogen.

        Du meinst also wohl tatsächlich Permutationen.

        Eine Algorithmus sieht ungefähr so aus:

        aktuelle_Kombination = leere Liste
        für alle Elemente
          wenn Array nicht leer ist
            nimm das aktuelle Element aus dem Array heraus ( http://de.selfhtml.org/javascript/objekte/array.htm#splice@title=splice()) und hänge es an aktuelle_Kombination an
            rufe die Funktion rekursiv für das restliche Array auf
          sonst
            gib aktuelle_Kombination aus

        Ein Problem hast du, wenn der Nutzer Zeichen mehrfach einträgt ("A", "B", "B"), dann liefert der Algorithmus nämlich

        A B B
        A B B
        B A B
        B B A
        B A B
        B B A

        Permutation mit Wiederholungen sind da etwas schwieriger zu implementieren, aber du schaffst das schon.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  3. Hallo Griever,

    ich glaube, du suchst alle Permutationen. Zur Erzeugung folgende Idee:

    Vertausche 1 mit 2, 1 mit 3, ..., 2 mit 3, 2 mit 4, ... 3 mit 4, 3 mit 5, ...

    Zum Überprüfen nimmst du dann einen kurzen (3, 4, 5) String.

    Gruß, Jürgen