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