Retourner au contenu associé (journal : Tirage aléatoire dans un tableau)
Posté par ondex le 01 août 2006 à 12:11. En réponse au journal Tirage aléatoire dans un tableau. Évalué à 1.
function randomProb($args) { $start=0; for($i=0; $i<count($args); $i++) { if( !isset($args[$i]->name) || !isset($args[$i]->probability) ) { return false; } $args[$i]->start = $start; $start += $args[$i]->probability; $args[$i]->end = $start; } $result = mt_rand(1, 1000000*$start)/1000000; foreach($args as $once) { if($result >= $once->start && $result <= $once->end) { return $once->name; } } return false; }
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# En PHP
Posté par ondex . En réponse au journal Tirage aléatoire dans un tableau. Évalué à 1.
function randomProb($args) { $start=0; for($i=0; $i<count($args); $i++) { if( !isset($args[$i]->name) || !isset($args[$i]->probability) ) { return false; } $args[$i]->start = $start; $start += $args[$i]->probability; $args[$i]->end = $start; } $result = mt_rand(1, 1000000*$start)/1000000; foreach($args as $once) { if($result >= $once->start && $result <= $once->end) { return $once->name; } } return false; }$args est un tableau d'objet. L'attribut name est la valeur qui sera tirée et l'attribut probability est la probabilité qu'elle soit tirée au sort (plus c'est grand plus ça a de chance) Testé et approuvé (par contre, j'ai pas fait la démonstration)