Si tu veux plus de réalisme (petit a parte mathématique):
Pour que ça soit plus "réalise", il vaut mieux utiliser une loi normale plutôt qu'une loi uniforme (plus de chances d'être dans la moyenne). Pour cela, tu te rappelles du théorème centrale limite, qui te dit que la somme d'évènements indépendants et identiquements distribués tend vers une loi normale lorsque le nombre d'évènements tend vers l'infini (l'infini pouvant être petit -ça marche pour des n pas si grand que ça-).
Donc supponsons qu'on veuille obtenir une distribution de loi normale de moyenne 0 et de variance... disons 15 (pour se trouver souvent entre -8 et +8 : en réalité, la probabilité d'être entre -8 et +8 est de 96,06% avec cette variance).
Après quelques calculs (à vérifier d'ailleurs), avec n = 10 (ça suffit pr ce que tu veux faire), en gros tu fais:
1 2 3 4 5 6
| final int N = 10;
double somme = 0;
// on fait la somme de 10 v.a. uniformes iid sur [0;1]
for(int i = 0; i < N; i++)
somme += Math.random();
double resultat = 14 * somme - 7 * N; |
Et voilà, "resultat" suit une loi normale qui devrait te convenir...
Partager