Zufallszahl anhand einer Quote bestimmen?

  • Ersteller Ersteller SGD-Daniel
  • Erstellt am Erstellt am
S

SGD-Daniel

Gast
Hallo,

so lautet mein Script, zur Bestimmung einer Zahl aus drei Zahlen:

<?
$z1 = '1';
$z2 = '2';
$z3 = '3';

srand((float) microtime() * 10000000);

$input = array($z1,$z2,$z3);

$rand_keys = array_rand($input, 3);

$zahlen = $input[$rand_keys[0]];

echo $zahlen;
?>

Nun möchte ich aus der Variable "$quote", die jeweils für $z1, $z2 und $z3 bestimmt wurde, mit der $quote die Wahrscheinlichkeiten des Auftreten der $zx ändern.

Wie ist das möglich?

Edit:

Ein Beispiel:
Einer wettet mit 100 auf die "1". Diese "1" hat eine Quote von 2,0. Die anderen beiden zufällig 3,0. D.h. die Zahl muss eher auftreten (wahrscheinlichkeit) als die anderen beiden.
Was muss ich an Quelltext hinzufügen, das genau das passiert?
 
Zuletzt bearbeitet:
hm mom mal. Du willst die wahrscheinlichkeit einer Zahl ermitteln um diese später noch wahrscheinlicher zu machen? Was sollte das für einen Sinn machen, dann wüsste man ganz schnell was man tippen muss :)


Oder ich hab da was nicht verstanden, was mich nicht wundern würde :)

Um eine bestimmte Zahl wahrscheinlicher zu machen müsste man theoretisch nur die Zufallszahl aus 4 Zahlen ziehn wobei 2 der 4 zahlen dieselben sind. Sicher nicht die beste Lösung aber die einfachste.
 
Zuletzt bearbeitet:
Etmolf schrieb:
Oder ich hab da was nicht verstanden, was mich nicht wundern würde :)

So ist es. Stell dir vor, er würde eine Wettbörse aufmachen wollen. Da ist es doch normal, dass die Quoten angegeben wurden. Man bekommt eben nicht so viel Geld, weil die Quote niedriger ist. Wenn sie höher ist, kriegt man mehr Geld, aber es ist eben unwahrscheinlicher. Das ist so ganz normal. Dass die Quote bei einer Zahl niedriger ist, muss ja nicht heißen, dass diese auch in jedem Fall gezogen wird.

Du musst also die Quoten miteinander multiplizieren und bei jeder Zahl durch die Quote dividieren. Dann hast du die Wahrscheinlichkeiten im Verhältnis. Bei dir wäre das z.B.:

1 - Quote: 2,0 - Häufigkeit: 9 von 21 (Rechnung: [2,0*3,0*3,0] geteilt durch 2,0)
2 - Quote: 3,0 - Häufigkeit: 6 von 21 (Rechnung: [2,0*3,0*3,0] geteilt durch 3,0)
3 - Quote: 3,0 - Häufigkeit: 6 von 21

(21 ist 9 + 6 + 6)

Dabei kann es natürlich vorkommen, dass einige Häufigkeiten Kommastellen haben. Da gilt es dann, so lange mit 10 zu multiplizieren, bis das bei allen nicht mehr der Fall ist.
Anschließend kann man das so bewerkstelligen, dass ein großes Array angelegt ist, in der die Zahlen 1, 2, 3 jeweils nach ihrer Häufigkeit vorkommen. Die Eins also 9 Mal, die Zwei 6 Mal und die Drei auch 6 Mal. Dann einfach per Zufall eine auswählen und schon klappt das so, wie du es gern hättest.
 
Zuletzt bearbeitet:
Zurück
Oben