だから私は可能な組み合わせの配列を持っています:
$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 の 2 つの配列を 1 つは重みを表し、もう 1 つはすべての可能な組み合わせを表し、このスクリプトのようなものを使用して作成できることはわかっていますが、もっと短くて効率的な方法はありませんか?
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];
}