import java.io.*; class poisson { public static void main(String arg[ ]) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Opciones : "); System.out.println( ); System.out.println("1 : Evaluar Poisson"); System.out.println("2 : Sumatoria de variables Poisson"); System.out.println( ); System.out.print("Ingrese opcion : "); int opcion = Integer.parseInt(in.readLine( )); System.out.println(); double lamda; switch(opcion) { case 1 : int x; System.out.print("Ingrese lamda : "); lamda = Double.parseDouble(in.readLine( )); System.out.print("Ingrese x : "); x = Integer.parseInt(in.readLine( )); System.out.println(); System.out.print("Resultado : "); System.out.println(fpoisson(lamda,x)); break; case 2 : int xi,xf; System.out.print("Ingrese lamda : "); lamda = Double.parseDouble(in.readLine( )); System.out.print("Ingrese x inicial : "); xi = Integer.parseInt(in.readLine( )); System.out.print("Ingrese x final : "); xf = Integer.parseInt(in.readLine( )); System.out.println(); System.out.print("Resultado : "); System.out.println(fpoissonAcum(lamda,xi,xf)); break; } } public static double fpoisson(double lamda , int x ) { double p = Math.pow(lamda,x) / factorial(x); return p * Math.exp(-lamda); } public static double fpoissonAcum(double lamda, int xi, int xf) { double s = 0.0; for(int x = xi; x <= xf; x++) { s += fpoisson(lamda,x); } return s; } public static long factorial(int n) { long f = 1; if(n > 1) { while (n > 1) { f *= n--; } } return f; } }