我有以下数组:
public $percentage = array(
0 => 20.30,
1=> 19.96,
2=> 14.15,
3=> 45.59
);
Run Code Online (Sandbox Code Playgroud)
//它总和为100%
我需要一个随机函数来按键的百分比返回密钥,
例如:获得0的可能性是20.30%,获得2的可能性是14.15%,第一个用户获得0,第二个获得2.
请让我知道你建议我使用的功能是什么.
将百分比转换为累积概率,然后将其与随机数进行比较.
如果随机数属于某个类别,则输出结果.如果没有,请转到下一个,直到找到一个.这允许您根据数组中指定的百分比概率输出数字.
$percentage = array(
0 => 20.30,
1=> 19.96,
2=> 14.15,
3=> 45.59
);
$random = mt_rand(0,10000)/100;
foreach ($percentage as $key => $value) {
$accumulate += $value;
if ($random <= $accumulate) {
echo $key;
break;
}
}
Run Code Online (Sandbox Code Playgroud)