keke tu as dis que tu récupérait toutes les villes possible dans une table, pourquoi pas à la place tout les poids possibles (donc moins de données).
ensuite tu fait un random sur le carré de la dimension du tableau des poids
et tu prend une ville au hasard parmis les villes ayant pour poid le poid à l'indice arrondi sup de la racine de ton random.
Voilà les probabilité pour 10 poids possibles
1 1.00%
2 3.00%
3 5.00%
4 7.00%
5 9.00%
6 11.00%
7 13.00%
8 15.00%
9 17.00%
10 19.00%
Plus haut ça deviens moins valables, si tu as 35 poids possibles les 6 premiers indices ne dépassent pas le pourcent.
Vite fais sur le gaz en mélange algo/php
ensuite tu fait un random sur le carré de la dimension du tableau des poids
et tu prend une ville au hasard parmis les villes ayant pour poid le poid à l'indice arrondi sup de la racine de ton random.
Voilà les probabilité pour 10 poids possibles
1 1.00%
2 3.00%
3 5.00%
4 7.00%
5 9.00%
6 11.00%
7 13.00%
8 15.00%
9 17.00%
10 19.00%
Plus haut ça deviens moins valables, si tu as 35 poids possibles les 6 premiers indices ne dépassent pas le pourcent.
Vite fais sur le gaz en mélange algo/php
Code PHP :
<?php
$poids = recordset des poids possibles
$rand = ceil(sqrt(mt_rant(sizeof($poids)*sizeof($poids))));
$ville = resultat de 'select ville from ville where poid ='.$poids[$rand]' order by rand() limit 1';
Mais autant c'est pas ce qu'il y'a de mieux, y'a surement des triturages mathématique meilleurs pour un random pondéré.