jede Zufallszahl nur einmal

Startseite Foren Deutsches LiveCode-Forum jede Zufallszahl nur einmal

Schlagwörter: 

Ansicht von 2 Antwort-Themen
  • Autor
    Beiträge
    • #14521
      wupp66
      Teilnehmer

        Hallo liebe Livecode Gemeinde,
        ich hääte eine Frage bezüglich Zufallszahlen.
        Wenn ich eine Zufallszahl mit Random(90) kreire und möchte jetzt eine bestimmte Anzahl von Zufallszahlen daraus erhalten, ist es dann möglich mit einem einfachen Befehl, die Zufallszahlen so zu beschränken, das sie nicht doppelt vorkommen ?

        Lieben Gruß
        Andreas

      • #14523
        Klaus Major
        Administrator

          Hallo Andreas,

          nein, einen einfachen Befehl gibt es dafür leider nicht, wir müssen das selber verwalten. In Deinem Fall würde ich es wahrscheinlich so machen:
          1. Eine CR getrennte Liste mit Zahlen von 1 – 90 erstellen

          ...
          repeat with i = 1 to 90
            put i & CR after tListe
          end repeat
          ## Leere Zeile löschen
          delete char -1 of tListe
          ...

          Diese Liste dann in eine globale Variable legen und eine Funktion erstellen, die mit aus dieser Liste zufällige Zahlen liefert und selbige dann aus der Liste löscht:

          global dieRandomListe
          
          function eine_zufallszahl
          
            ## Hier musst Du entscheiden, was passieren soll:
            if dieRandomListe = EMPTY then
              ## Mach was...
            end if
          
            ## Mischen:
            sort lines of dieRandomListe by random(10000) 
          
            ## Liste ist ja gemischt, also können wir "von oben" nehmen:
            put line 1 of dieRandomListe into dieRandomZahl
          
            ## Jetzt der Trick, damit wir keine doppelten Vorkommen der Zufallszahl bekommen:
            delete line 1 of dieRandomListe
          
            ## Nun die Zahl RETURNen
            return dieRandomZahl
          end eine_zufallszahl

          Das geht ins Stackskript, so daß du nun bei bedarf immer iene Zufallszahl zur Hand hast mit:

          ...
          put eine_zufallszahl() into karlheinz
          ...

          Capisce? 🙂

          Gruß

          Klaus

        • #14537
          wupp66
          Teilnehmer

            Vielen Dank Klaus, ich werde es mal so ausprobieren.

            Gruß Andreas

        Ansicht von 2 Antwort-Themen
        • Du musst angemeldet sein, um auf dieses Thema antworten zu können.