Zufallszahl mit Ausnahmen

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

  • Zufallszahl mit Ausnahmen

    Hallo,

    ich habe wieder einmal ein Problemchen.

    Für einen Test unserer Azubis haben wir einen Fragenkatalog
    mit ca. 100 - 120 Fragen. Davon müssen die ca. 20 beantworten.
    Wir stellen momentan die Tests noch manuell zusammen.
    Jetzt wollte ich ein kleines Script dafür schreiben nur bleibe
    ich an einer Stelle hängen.

    Die Fragen sollen nach dem Zufallsprinzip ausgewählt werden.

    $fragen_nr = rand(usw...)

    Nur soll natürlich keine Frage zweimal kommen, also dachte
    ich mir schreibst du die fragen_nr in eine temp_db und
    prüfst vor dem select der Frage nach ob die fragen_nr
    schon dran war nur das stellt sich nun als schwieriger raus
    als ich dachte

    Beispiel:

    Azubi macht die Fragen 5,2,9

    neue zufallszahl = 2

    jetzt kann ich natürlich abfragen kommt die vor JA / NEIN, wenn
    sie vorkommt neue Zufallszahl erstellen lassen doch dann müsste
    ich ja wieder prüfen ob diese auch schon vorgekommen ist?

    Ich habs auch schon mit einer while schleife versucht jedoch
    klappt das auch nicht.

    Hat jemand einen Lösungsweg??

    Danke jungs!
    ----------------------------------------
    Sei fair, dann wird man fair zu dir sein

  • #2
    Pack alle Zahlen in ein Array.
    Nun ziehst du mit array_rand() eine Zahl, löscht diese anschließend aus dem Array und beginnst von vorn. So lange bis genug Zahlen gezogen sind oder das Array leer ist.

    Das Prinzip kennst du vom Lotto: Alle Bälle in einem Mixer und jede Kugel, die gezogen wird, bleibt draußen, kann also nicht nochmal gezogen werden.

    Kommentar


    • #3
      Hi,

      Du kannst es auch andersherum machen, du steckst jede Zahl die du gezogen hast in ein Array und prüfst, ob der Wert bereits im Array ist.
      Sollte etwas weniger umbauarbeit sein für dich.

      Gruß Thomas

      Kommentar


      • #4
        @Alrik: Das ist genau das, was er schon macht und es stört ihn wohl, dass er da u.U. wiederholt würfeln muß.
        Kann ich auch verstehen, denn man kann nicht wirklich vorhersagen, wie oft man würfeln muß, um soundsoviele Zahlen zu ziehen. Somit macht man die Laufzeit vom Zufall abhängig - das will keiner.

        Kommentar


        • #5
          warum so ein kult?
          PHP-Code:
          $arr range(1,120);
          shuffle($arr);
          for(
          $i=0$i<$soVieleFragenBrauchIch$i++)
              echo 
          $arr[$i]; 
          Kissolino.com

          Kommentar


          • #6
            Ich hab mir mal die, pack alles in ein Array - Methode und
            lösch die jeweilig gezogene Zahl geschnappt und Sie
            funktioniert super!!

            Danke an alle 3 für die schnellen Antworten !!!!

            Gruss feller
            ----------------------------------------
            Sei fair, dann wird man fair zu dir sein

            Kommentar

            Lädt...
            X