0

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

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

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

4

2 回答 2

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';
于 2013-03-14T18:22:18.260 回答
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
}
于 2013-03-14T18:19:04.520 回答