• # En PHP

    Posté par . 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)