forse un metodo più "comodo" in modo da dare direttamente le percentuali
Codice PHP:
function rollDice(&$f) {
$random = mt_rand(1,100);
$lastprob=0;
foreach($f as $faccia=>$prob) {
if($random<=$lastprob+$prob) return $faccia;
$lastprob+=$prob;
}
die("Errore con i parametri probabilità dell'array");
}
$facce = array(
'lato_1' => 50, // 50%
'lato_2' => 30, // 30%
'lato_3' => 20 // 20%
);
// usage:
echo "E' uscito il lato " . rollDice($facce);
// test
$result = array_fill_keys(array_keys($facce),0);
for($i=0; $i<100000; $i++) {
$result[rollDice($facce)]++;
}
print_r($result);