Provability成功或失败
问题描述:
我想在PHP中创建一个脚本,它将决定我是否失败或成功的概率。例如,90%的时间返回true
(或“成功”),false
或其他10%返回“失败”。基本上,我成功的概率是9/10,而我失败的概率是1/10。Provability成功或失败
我试图使用rand()
函数来查看数字是否匹配,但是它的概率太低。如果你们能帮助我获得一个或开始一个,我将不胜感激。谢谢。 :)
答
$rand = rand(1,100);
$probability = 90;
$succeed = $rand <= $probability;
答
这是非常简单的,但也许这可以帮助你......
// 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)];
+0
好的,但我怎么会从90到数组?我会做一个循环插入尽可能多的F的必要 – Eduardop911 2013-04-20 17:07:42
答
下面是基于足球俱乐部的回答另一个版本。
这测试概率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 . ' %';
?>
这将在技术上给你1/100的机会。 – Eduardop911 2013-04-20 17:10:14
哼哼,我用“ 2013-04-20 17:13:29
@ Eduardop911 F.C.是正确的。 http://codepad.org/1XMHKim0 – Eric 2013-04-20 17:15:01