Je me demande si c'est un algorithme suffisant pour trouver la meilleure valeur avec un système pondéré. Y a-t-il quelque chose que je pourrais ajouter pour le rendre meilleur?PHP Weight Algorithm
Dans cet exemple, je souhaiterais que la probabilité de retour de test44 soit 4 fois supérieure à la probabilité de retour de test1 à $object->get()
.
class weightCalculator {
var $data = array();
var $universe = 0;
function add($data, $probability){
$this->data[ $x = sizeof($this->data) ] = new stdClass;
$this->data[ $x ]->value = $data;
$this->universe += $this->data[ $x ]->probability = abs($probability);
}
function get(){
if(!$this->universe){
return null;
}
$x = round(mt_rand(0, $this->universe));
$max = 0;
$i = 0;
while($x > $max){
$max += $this->data[ $i++ ]->probability;
}
$val=-1;
if($this->universe==1){
$val = $this->data[$i]->value;
} else {
$val = $this->data[$i-1]->value;
}
return $val;
}
}
$object = new weightCalculator;
$object->add('test1', 10);
$object->add('test2', 20);
$object->add('test3', 30);
$object->add('test4', 40);
Qu'entendez-vous par "meilleure valeur"? La valeur assignée pour la variable aléatoire $ x, basée sur les poids ordonnés de tous les éléments de données dans cet-> univers? – taserian
Je suppose que je me demande si la méthode que j'utilise est la meilleure façon de calculer la valeur pondérée d'un résultat. – Petrogad
Posez une question stupide, mais qu'essayez-vous de faire ici? – Meep3D