我有多少时间能做某事? 3个不同的选择?我无法弄清楚如何以3种方式做到这一点:
if 20% {
code 20% of the time
} elseif 20% {
code #2 20% of the time
} else %60 {
code # 3 60% of the time
}
我知道这适用于一个或两个选项,但3怎么样?
$rand = mt_rand(1, 100);
if ($rand > $successrate) // Success rate is your integer; 87 for 87% for example
{
// This is a failure.
}
答案 0 :(得分:2)
使用0到99之间的随机值(因为你正在处理百分比),你可以这样做:
$rand = mt_rand(0, 99);
if ($rand < 20) {
//Do this 20% of the time
} elseif ($rand < 40) {
//Do this 20% of the time
} else {
//Do this 60% of the time
}
或者,如果您更喜欢处理非零值
$rand = mt_rand(1, 100);
if ($rand <= 20) {
//Do this 20% of the time
} elseif ($rand <= 40) {
//Do this 20% of the time
} else {
//Do this 60% of the time
}
请注意,您不能使用严格的运算符(或使用&lt; 21 /&lt; 41),因为在这种情况下,您将拥有19%,19%和62%
答案 1 :(得分:1)
您可以尝试以下测试:
if ($rand > 40) {
// 41-100
} else if ($rand > 20) {
// 21-40
} else {
// 0-20
}
答案 2 :(得分:1)
完全相同
$rand = mt_rand(1, 100);
if ($rand >= 1 && $rand <= 20)
// 20%
else if ($rand >= 21 && $rand <= 40)
// 20%
else if ($rand >= 41 && $rand <= 100)
// 60%