2013-03-14 68 views
0

如果我想創建一個調查,顯示你未來的嬰兒的性別與計數的男女比例爲1.05到1.假設每對夫婦只會得到一個嬰兒。我怎麼能在PHP中做到這一點?php有一個隨機嬰兒

rand (0,1);將生成一個隨機數(1或0)。它可以代表性別。但是,如何將該比率作爲獲得該數字的概率來應用呢?

我知道比例非常接近,也許將比例應用於我的功能根本不會影響結果。但我這樣做是爲了教育自己,請舉例說明如何做到這一點。

+5

蘭特之間'(1,205)選擇'。如果值<= 105,則是男性,> 105是女性。 – 2013-03-14 18:11:33

+0

@MichaelBerkowski不錯。但仍在尋找其他方法來找到比例。請不要把你的答案作爲評論^^「 – shnisaka 2013-03-14 18:13:32

+2

想象它好像你有兩個盒子,一個比另一個稍大,你把一個球投向空中,它可能落在任何一個盒子裏(在真空當然)直接與盒子的大小有關 – 2013-03-14 18:13:42

回答

1

1.05至1等同於:

  • 男(%)=(1/2.05)* 100%= 48,78 ..%
  • 女(%)=(1.05/2.05)* 100%=如果你想更

    $rnd = rand(0,100); 
    if ($rnd < 48) { 
        //male 
    } 
    else { 
        //female 
    } 
    

    :51.22 ..%

現在取決於所需的精確程度,你可以做以下的算法精度:

$rnd = rand(0,10000); 
if ($rnd < 4878) { 
    //male 
} 
else { 
    //female 
} 
2

按@邁克爾Berkowski的評論:

/** 
* Generate random baby gender adjusted by ratio male to female 1.05:1 
* 
* @return 
* TRUE if male or FALSE if female 
*/ 
function is_random_male() { 
    return rand(1, 205) <= 105; 
} 

echo is_random_male() ? 'male' : 'female';