|
La variable aléatoire X suit un loi de Poisson de paramètre λ > 0 si pour tout entier n : P(X = n) = e-λ λn / n ! On démontre alors que E(X) = V(X) = λ. Méthode utilisée pour générer des nombres alétoires selon la loi de Poisson de paramètre λ :
private int rndpoiss (double lambda) {
int resultat = 0;
double r = rnd.nextDouble();
double expmlambda = Math.exp (-lambda);
while (r > expmlambda){
resultat ++;
r *= rnd.nextDouble();
}
return resultat;
}
Autre méthode possible dans laquelle "rnd.nextDouble()" n'est utilisé qu'une seule fois mais qui nécessite plus d'opérations :
private int rndpoiss (double lambda) {
double somme = 1;
double t = 1;
int n = 0;
double r = rnd.nextDouble() * Math.exp (lambda);
while (somme < r) {
n ++;
t *= lambda / n;
somme += t;
}
return n;
}
|