PHP有一个随机的婴儿


php is having a random baby

如果我想创建一个调查,显示你未来孩子的性别,计算男女比例是1.05比1。假设每对夫妇只生一个孩子。如何在php中实现呢?

rand (0,1);将生成一个随机数(1或0),可以表示性别。但是,如何将比率作为概率应用于得到那个数字呢?

我知道比率非常接近,也许将比率应用于我的函数根本不会影响结果。但我这样做是为了自我教育,所以,给我一个例子,告诉我如何做到这一点。

根据@Michael 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';

1.05 to 1相当于:

  • 男性% = (1/2.05)* 100% = 48,78..%
  • 女性百分比= (1.05/2.05)* 100% = 51.22..%

现在,根据所需的精度,您可以执行以下算法:

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

如果你想要更精确:

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