fester Zahlenbereich randomisiert



  • Du erzeugst ein Array mit den Zahlen von 0 bis 29:

    array[i] = i;
    

    Dann gehst du array[0] und suchst dafür einen neuen Index mit einer Zufallszahl von 0- 29 und vertauscht array[0] mit array[zufallstahl]
    Dann gehst du zu arry[1] und machst das gleiche, bis du bei arry[29] angekomen bist.
    Jetzt hast du in deinem Array Zahlen von 0 bis 29 in einer zufälligen Reihenfolge.

    Oder beim Kartenspiel:
    Du hast das geordnete Spiel, nimmst die erste Karte, überlegst dir einen neuen Platz für diese Karte und dann vertauscht die beiden Karten.
    Das selbe machst du für alle andern Karten auch.



  • 1. Array erzeugen mit den Werten 0 ... 29
    2. Obergrenze = 29 und in einer Schleife
    Zufallszahl zwischen 0 und Obergrenze ziehen
    Arrayinhalt[Zufallszahl] und Arrayinhalt[Obergrenze] vertauschen
    Eins von Obergrenze subtrahieren
    bis Obergrenze 0 ist

    Nun ist das Array gemischt.



  • Belli schrieb:

    ....

    Oder anders herum 😃



  • Wenn ich das richtig verstehe muss quasi zufaellig jede Zahl meines
    Arrays einmal generiert werden. Also laeuft der Algorithmus solange bis
    bis rand zufaellig einmal 0, einmal 1, etc... erzeugt hat?



  • DirkB schrieb:

    Belli schrieb:

    ....

    Oder anders herum 😃

    Ich war einfach zu spät. Ich hätte das nicht gepostet, wenn ich Deine Antwort vorher gesehen hätte.



  • gigg schrieb:

    Wenn ich das richtig verstehe muss quasi zufaellig jede Zahl meines
    Arrays einmal generiert werden. Also laeuft der Algorithmus solange bis
    bis rand zufaellig einmal 0, einmal 1, etc... erzeugt hat?

    Nö, woraus schliesst Du das?



  • Belli schrieb:

    Nö, woraus schliesst Du das?

    Moment. Ich muss das erst noch mal durchdenken. Bin nicht mehr der
    juengste und arbeite mich nach langer Zeit erst wieder ein. 🙂



  • Vielen Dank erstmal fuer eure Antworten.

    Gruesse



  • gigg schrieb:

    Bin nicht mehr der
    juengste

    Das ist kein Argument. Ich bekomme nächsten Monat mein zweites Enkelkind.



  • gigg schrieb:

    Wenn ich das richtig verstehe muss quasi zufaellig jede Zahl meines
    Arrays einmal generiert werden. Also laeuft der Algorithmus solange bis
    bis rand zufaellig einmal 0, einmal 1, etc... erzeugt hat?

    Nein.
    Du erzeugst die Zahlen von 0 bis 29 in fester Reihenfolge.
    Dein Algorithmus läuft 30 mal da durch.

    Du nimmst jede Karte in dei Hand und überlegst einen neuen Platz für sie.

    selbst wenn ein Zahl mal nicht zufällig gezogen wurde, hast du kommt sie in deinem Stapel drin vor.

    0 1 2 3 4 5 6 7 8 9 Karte[0], Zufallszahl 8 -> Karte 0 mit Karte 8 tauschen
    ^               ^
    +---------------+ Diese Karten vertauschen
    8 1 2 3 4 5 6 7 0 9  Karte[1], Zufallszahl 3 -> Karte 1 mit Karte 3 tauschen
    8 3 2 1 4 5 6 7 0 9  Karte[1], Zufallszahl 3 -> Karte 1 mit Karte 3 tauschen
    8 3 2 1 4 5 6 7 0 9  Karte[2], Zufallszahl 0 -> Karte 2 mit Karte 0 tauschen
    2 3 8 1 4 5 6 7 0 9  ....
    


  • Belli schrieb:

    gigg schrieb:

    Bin nicht mehr der
    juengste

    Das ist kein Argument. Ich bekomme nächsten Monat mein zweites Enkelkind.

    Dann lebst du noch von deinem Langzeitgedächtnis. 😃



  • Jetzt habe ich's begriffen. Danke Dirk und Belli.



  • DirkB schrieb:

    Dann lebst du noch von deinem Langzeitgedächtnis. 😃

    So ganz falsch ist das nicht!


Anmelden zum Antworten