import java.util.Scanner;


public class test_poisson {

	
	public static void main(String[] args) {
		
		int lambda=5; // on peut changer le lambda pour avoir une nouvelle espérance et variance car E[X]=Var(X)=lambda
		
		
		
		
		Scanner sc = new Scanner(System.in);
		System.out.println("Saisissez un nombre d'itération svp : ");
		int nb = sc.nextInt();
		
		double[] U = new double[nb]; // Simulation des nb valeurs;
		for(int a=0;a<nb;a++){
			U[a]=Math.random();
		}
		
		
		double esp=0;
		double var=0;
		for(int j=0;j<nb;j++){
			int valeur=0;
			double cumule=Math.exp(-lambda);
			double ajout=cumule;
			while(cumule<U[j]){
				valeur++;
				ajout=(ajout*lambda)/valeur;
				cumule=cumule+ajout;
			}
			
			esp+= valeur;
			var+=(valeur*valeur);
		}
		
		esp=esp/nb; //espérance simulé
		var=(var/nb)-esp*esp; //variance simulé
	
		System.out.println("L'espérance simulé est de : " +esp);
		System.out.println("La variance simulé est de : " +var);
		
		System.out.println("Espérance et variance theorique : Lamda = " +lambda);
		
		
		
	}
	
	
}
