我想用 PHP 编写一个脚本,它会根据概率确定我是失败还是成功。例如,true
90% 的时间返回(或“成功”),而false
其他 10% 的时间返回(或“失败”)。基本上,我成功的概率为 9/10,失败的概率为 1/10。
我试图使用该rand()
函数来查看数字是否匹配,但概率太低了。如果你们能帮助我获得一个或开始一个,我将不胜感激。谢谢。:)
我想用 PHP 编写一个脚本,它会根据概率确定我是失败还是成功。例如,true
90% 的时间返回(或“成功”),而false
其他 10% 的时间返回(或“失败”)。基本上,我成功的概率为 9/10,失败的概率为 1/10。
我试图使用该rand()
函数来查看数字是否匹配,但概率太低了。如果你们能帮助我获得一个或开始一个,我将不胜感激。谢谢。:)
$rand = rand(1,100);
$probability = 90;
$succeed = $rand <= $probability;
这是基于FC答案的另一个版本。
这会测试 10000 次概率并给出大约 10% 的失败率。
<?php
$probability = 90;
$fails = 0;
$succeeds = 0;
for($i = 0; $i < 10000; $i++) {
$rand = rand(1, 100);
if ($rand <= $probability) {
$succeeds++;
}
else {
$fails++;
}
}
echo 'Fail ratio: ' . ($fails / $succeeds) * 100 . ' %';
?>
这非常简化,但也许这可以帮助你......
// Array with 9 S's and one F -> 90% change of getting an S.
$a = array('S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'F');
echo $a[array_rand($a)];