Programmierter Zufall...

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

  • Programmierter Zufall...

    Folgende Sache:
    Es soll ein "Würfel" simuliert werden, ganz einfach, mit den zahlen von 1 bis 6.
    Die gewürfelte Augenzahl soll per Zufallsgenerator ausgesucht werden.
    Allerdings nicht 100-ig per Zufall, denn die wahrscheinlichkeit das die 1 gewürfelt werden soll, soll größer sein, als die der sechs.
    Ist das mit PHP machbar? Wenn ja, kann mir jemand einen Tipp geben, wie man einen Zufallsgenerator und die bevorzugung einer Zahl programmiert? Vielleicht ein entsprechendes Tutorial, oder einfach jede Menge Tipps? Ich will kein ganzes Programm , sondern eine Basis, um zu wissen, wie ich anfange und die besonderen Kniffe bearbeiten kann...

    vielen Dank

  • #2
    Klaro ... Gewichtete Verteilungen zu programmieren ist relativ einfach.

    ein Beispiel:
    [code]
    srand ((double) microtime() * 1000000);

    //Array anlegen: die Werte als Indizes, Gewichte als Werte.
    $a = array (1=>4,2=>3,3=>3,4=>2,5=>2,6=>2);
    //Dann holst du die Summe aller Gewichte mit
    $x = array_sum ($a);
    //Zufallszahl ermitteln:
    $r = floor(rand (0,$x));
    // und raussuchen, welcher Wert damit gemeint ist:
    $s = 0;
    for (reset($a); list($z, $w) = each($a); )
    {
    $s+=$w; // bisherige Summe ums aktuelle Gewicht erhoehen
    if ($s>$r) break; // Abbruch wenn Gewichtsumme>Zufallszahl
    }
    // und ausgeben
    echo $z;
    [/quote]

    Ach ja: array_sum gibt's erst ab Version 4.04; in php3 mußt du dir eine Schleife dafür bauen.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar

    Lädt...
    X