如果我想创建一个调查来显示您未来婴儿的性别,计算男性与女性的比例为 1.05 比 1。假设每对夫妇只会生一个孩子。我怎么能在php中做到这一点?
rand (0,1);
将生成一个随机数(1 或 0)。可以代表性别。但是,如何将该比率用作获得该数字的概率?
我知道这个比率非常接近,也许将这个比率应用于我的函数根本不会影响结果。但我这样做是为了教育自己,所以请给我一个如何做到这一点的例子。
如果我想创建一个调查来显示您未来婴儿的性别,计算男性与女性的比例为 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 比 1 相当于:
现在根据所需的准确程度,您可以执行以下算法:
$rnd = rand(0,100);
if ($rnd < 48 ) {
//male
}
else {
//female
}
如果您想要更高的准确性:
$rnd = rand(0,10000);
if ($rnd < 4878 ) {
//male
}
else {
//female
}