php有一个随机的宝贝

时间:2013-03-14 18:09:07

标签: php

如果我想创建一个显示未来婴儿性别的调查,计算男性与女性的比例为1.05比1.假设每对夫妇只生一个孩子。我怎么能在PHP中做到这一点?

rand (0,1);将生成一个随机数(1或0)。这可以代表性别。但是,如何将该比率应用为获得该数字的概率?

我知道比率非常接近,并且可能将比率应用于我的功能根本不会影响结果。但我这样做是为了教育自己,给我一个如何做到这一点的例子。

2 个答案:

答案 0 :(得分:2)

根据@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 :(得分:1)

1.05比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
}