Ankündigung

Einklappen
Keine Ankündigung bisher.

nicht doppelte zufallszahlen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • imported_kontur
    hat ein Thema erstellt nicht doppelte zufallszahlen.

    nicht doppelte zufallszahlen

    Hallo zusammen!

    Ich wollte ein Script schreiben, welches mir zwischen 20 und 50 Zufallszahlen ausgibt, von denen aber keine doppelt vorkommen darf.

    Die erste For-Schleife checkt ob schon genug Zufallszahlen vorhanden sind.
    Dann wird innerhalb der While-Schleife eine neue Zufallszahl erzeugt.
    Im nächsten For wird überprüft, ob in dem Array der nicht doppelten Zufallszahlen die soeben erzeugte Zufallszahl schon vorhanden ist. Wenn ja, kommt die Bedingung der While-Schleife zum Tragen, wenn nein, dann wird die While-Schleife verlassen und die nicht doppelte Zufallszahl in das Array gespeichert.
    Schließlich möchte ich alle gefundenen Zufallszahlen ausgeben lassen.

    So zumindest der Plan.

    Da ich noch nicht lange, bzw. nicht intensiv, mit Php arbeite vermute ich es handelt sich um einen Fehler mit dem Array, konnte aber nicht finden, was das Problem ist.

    Code:
    $howOftenBreak = rand(20,50);
    							
    							$whereBreak = array();
    							$whereBreakLength = count($whereBreak);
    							
    							for ($b=0; $b<$howOftenBreak; $b++){
    									$break = false;
    									while ($break == false){
      									$breakPoint = rand(0,130);
      									$break = true;
      									for ($a=0; $a<$whereBreakLength; $a++){  
      											if ($breakPoint == $whereBreak[$a]){
      											$break = false;
      											}
      									}
    $whereBreak[] = $breakPoint;
    									}
    							}							
    							for ($c=0; $c<$whereBreakLength; $c++){
    							echo $whereBreak[$c];
    							}
    Deshalb bitte ich hiermit um Hilfe. Hoffentlich kann mir jemand sagen, wo der Bug steckt.
    Danke im Vorraus,
    k.

  • imported_kontur
    antwortet
    Ahjo...danke schon mal.

    Was bedeutet die orange Markierung in deinem Quelltext-Ausschnitt?

    Ich kannte weder den foreach- noch den range-Befehl. Danke.
    Mit mt_srand erzeugst du also eine Zufallszahl die als Basis die jeweils momentane Zeit nimmt?
    Aber wie werden die Zufallszahlen in dem unteren Codebeispiel jeweils in das Array geschrieben um dann gemischt und ausgegeben zu werden?


    k.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);

    $howOftenBreak rand(20,50);
    $whereBreak = array();
    # $whereBreakLength = count($whereBreak);

    for ($b=0$b<$howOftenBreak$b++){
        
    $break false;
        while (
    $break == false){
         
    $breakPoint rand(0,130);
         
    $break true;
         
    # for ($a=0; $a<$whereBreakLength; $a++){ 
         # if ($breakPoint == $whereBreak[$a]){
         # $break = false;
         # }
         # }
    $whereBreak[] = $breakPoint;
        }
    }

    for (
    $c=0$c count($whereBreak); $c++){ 
    echo 
    $whereBreak[$c].' '
    }

    ?>
    EDIT:

    Wobei das Script etwas umständlich geschrieben ist.

    PHP-Code:
    <?php
    $numbers 
    range (2050);
    mt_srand ((float)microtime()* 500000);
    shuffle ($numbers); 
    foreach (
    $numbers as $v) echo $v.' ';
    ?>

    Einen Kommentar schreiben:


  • imported_kontur
    antwortet
    Zitat von search
    Das Skript läuft ohne Problem, aber es gibt absolut nichts aus.
    ohne eine Fehlermeldung auszuspucken meinte ich na klar

    Einen Kommentar schreiben:


  • search
    antwortet
    Das Skript läuft ohne Problem, aber es gibt absolut nichts aus.

    Einen Kommentar schreiben:


  • imported_kontur
    antwortet
    hmm...danke für den Codeschnipsel. Mich würde trotzdem noch interessieren, was an meinem Selbstgeschriebenem nicht funktioniert.

    Ich habe in meinem Topic vergessen zu schreiben was da eigentlich nicht klappt . Das Skript läuft ohne Problem, aber es gibt absolut nichts aus.

    Vielen Dank im Vorraus,
    k.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    25.7. Wie kann ich aus einem Zahlenbereich von x bis y, zufällig n Zahlen auswählen, so dass keine Zahl doppelt vorkommt?

    Einen Kommentar schreiben:

Lädt...
X