所以我有一系列可能的组合:
$faces = array ('Bar', 'Cherry', 'Lemon', 'Seven', 'DoubleBar', 'TripleBar');
和一系列的支出
$payouts = array (
'Bar|Bar|Bar' => '5',
'Double Bar|Double Bar|Double Bar' => '10',
'Triple Bar|Triple Bar|Triple Bar' => '15',
'Cherry|Cherry|Cherry' => '20',
'Seven|Seven|Seven' => '70',
'Seven|Any|Any' => '70',
'Diamond|Diamond|Diamond' => '100',
);
每个轮子都有一个数组(总共 3 个),我怎样才能使加权随机组合与 Seven|Any|Any 正常工作?
我知道我可以创建两个大小为 6^3 的数组,一个代表权重,另一个数组代表每个可能的组合,并使用类似这个脚本的东西,但是没有更短、更有效的方法吗?
function weighted_random_simple($values, $weights){
$count = count($values);
$i = 0;
$n = 0;
$num = mt_rand(0, array_sum($weights));
while($i < $count){
$n += $weights[$i];
if($n >= $num){
break;
}
$i++;
}
return $values[$i];
}