2017-03-29 1 views
0

Gibt es eine Möglichkeit, eine Wahrscheinlichkeitskontrolle festzulegen, um einen zufälligen Wert von 1 oder 2 zu erhalten? Angenommen, wenn ich mehr als 70% der Zeit möchte, sollte es 1 sein und nur 30% sollten die Chance haben, 2 in rand(1,2) zu bekommen. Ist es möglich?Einstellen der Wahrscheinlichkeit, eine Zufallszahl 1 oder 2 zu erhalten

+3

Mögliche Duplikat [Generieren von Zufallszahlen mit fix Wahrscheinlichkeit] (http://stackoverflow.com/questions/21572363/generate-random-numbers-with -fix-probability) – Shogunivar

Antwort

1

Generieren Sie eine Zahl zwischen 1 und 10, dann, wenn die Zahl größer als 7 ist, zurückkehren 2, sonst Rückkehr 1

x = rand(1, 10); 
if(x > 7){ 
    return 2; 
} 
else { 
    return 1; 
} 

Sie 70% und 30% Chance, die Zahl, die Sie erhalten möchten

+0

das ist ein ganz einfacher Trick .. genau passend zu meiner Anfrage .. danke :) –

0

Warum generieren Sie keine gleichmäßig verteilten Zufallszahlen und filtern die Zahl dann mit einem if?

int x,r; 

r=rand() % 100;   // r in the range 0 to 99 
if(r<=70){x=1;} 
else{x=2;} 
0

Diese den Trick tun sollten:

function yourrand($prob) { 
     $r = rand(); 
     if ($r < $prob) { return 1; } 
     else { return 2; } 
} 
Verwandte Themen