2011-11-17 3 views
3

Comment puis-je générer un nombre aléatoire pondéré compris entre 1 et 10, 10 étant le plus grand risque et 1 le plus faible?PHP Nombre aléatoire pondéré

rand(1,10) ? 

a besoin d'être un simple code d'une ligne car il sera exécuté 100.000 de temps de

+0

pour les petites valeurs de "aléatoire"? – Mawg

+2

duplication possible de [Générer des résultats aléatoires au poids en PHP?] (Http://stackoverflow.com/questions/445235/generating-random-results-by-weight-in-php) –

+0

désolé, Herman, mais vous venez de don Ne semble pas avoir vos besoins définis. A moins que vous ne puissiez expliquer plus explicitement que "une probabilité de séquence beaucoup plus élevée à plus basse", je crains que quelqu'un (pas moi) ne ferme cette question. S'il vous plaît dites-nous ce que vous voulez (ce que vous voulez vraiment, voulez vraiment) et nous allons essayer d'aider. Pour moi, il semble que vous souhaitiez une sorte d '«échelle mobile» de probabilité, mais que vous n'ayez pas défini comment cela devrait glisser. – Mawg

Répondre

14

OK Je pense que je comprends ce que vous essayez de dire ..

essayez ceci:

mt_rand(mt_rand(1, 10),10); 

Je boucle un million de fois:

10 = 292634 
9 = 193333 
8 = 142815 
7 = 109580 
6 = 84616 
5 = 64498 
4 = 47666 
3 = 33450 
2 = 21286 
1 = 10122 
+2

On dirait exactement la bonne logique. Bien fait. :) – Nightfirecat

+0

Bonne idée, fonctionne très bien pour moi aussi, je me demandais s'il y avait une solution facile pour obtenir moins de poids entre 1 et 10? –