Advertisement
alduncin

Generador.java

Jul 1st, 2013
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. //generador congruencial mixto variable  
  2. //con la prueba de frecuencia y prueba de coridas
  3. import java.util.Scanner;
  4.  
  5. public class Generador
  6. {
  7.     public static void main(String[] args)
  8.     {
  9.     int N;
  10.     float M,A,B,D,C,R=0;
  11.     Scanner s = new Scanner(System.in);
  12.     System.out.println("Cantidad de Numeros a Generar:");
  13.     N = s.nextInt();
  14.     System.out.println("Modulo: ");
  15.     M = s.nextInt();
  16.     System.out.println("Semillas A: ");
  17.     A = s.nextInt();
  18.     System.out.println("B: ");
  19.     B = s.nextInt();
  20.     System.out.println("D: ");
  21.     D = s.nextInt();
  22.  
  23.     float[] RL= new float[N];  
  24.     char[] andy= new char[N];
  25.     int [] freq= new int [10];
  26.     for(int i=0;i<10;i++){
  27.         freq[i]=0;
  28.     }
  29.     System.out.println("___________________________________");
  30.     System.out.println("Numeros PseudoAleatorios de 0 a 1:");
  31.     for(int i=0;i<N-1;i++){
  32.         C=A+B*D;
  33.         R=C%M;
  34.         A=B;
  35.         B=D;
  36.         D=R;
  37.         R=R/M;
  38.         RL[i]=R;
  39.         if(R > 0 && R < 0.1){      
  40.         freq[0]=freq[0]+1;
  41.         }
  42.         if(R > 0.1 && R < 0.2){        
  43.         freq[1]=freq[1]+1;
  44.         }
  45.         if(R > 0.2 && R < 0.3){                                                                
  46.         freq[2]=freq[2]+1;
  47.         }
  48.         if(R > 0.3 && R < 0.4){
  49.         freq[3]=freq[3]+1;
  50.         }
  51.         if(R > 0.4 && R < 0.5){                                                                
  52.         freq[4]=freq[4]+1;
  53.         }
  54.         if(R > 0.5 && R < 0.6){
  55.         freq[5]=freq[5]+1;
  56.         }
  57.         if(R > 0.6 && R < 0.7){                                                                
  58.         freq[6]=freq[6]+1;
  59.         }
  60.         if(R > 0.7 && R < 0.8){                                                                
  61.         freq[7]=freq[7]+1;
  62.         }
  63.         if(R > 0.8 && R < 0.9){                                                                
  64.         freq[8]=freq[8]+1;
  65.         }
  66.         if(R > 0.9 && R < 1){                                                                
  67.         freq[9]=freq[9]+1;
  68.         }
  69.        
  70.         System.out.println(RL[i]);
  71.         if (i>0){
  72.         if(RL[i]>RL[i-1])
  73.             andy[i-1]='0';
  74.         else
  75.             andy[i-1]='1';
  76.         }
  77.     }
  78.     System.out.println("___________________________________");
  79.     System.out.println("Frecuencia de ");
  80.     for(int i=0;i<10;i++){
  81.         System.out.println("Rango "+i+": "+freq[i]);
  82.         }
  83.     System.out.println("___________________________________");
  84.     System.out.println("lista de 0's y 1's");
  85.     for(int i=0;i<10;i++){
  86.         System.out.println(andy[i]);
  87.     }
  88.     System.out.println("___________________________________");
  89.     System.out.println("Los separa en grupo de Frecuencias");
  90.    
  91.     int repeat=0;
  92.     int [] Repeat= new int [N];
  93.     char aux;
  94.     for(int i=0;i<N;i++){
  95.         if(i==0)
  96.         aux='0';
  97.         else
  98.         aux=andy[i-1];//se comparara con el siguiente o anterior depende
  99.  
  100.         if(andy[i]==aux){
  101.         System.out.println(andy[i]);
  102.         repeat++;          
  103.         }
  104.         else{
  105.         if(andy[i]=='0'||andy[i]=='1'){
  106.         //Repeat[repeat]=Repeat[repeat]+1;
  107.         repeat=0;
  108.         System.out.println(andy[i]);
  109.         repeat++;}
  110.         }
  111.         System.out.println("\t "+repeat);
  112.     }
  113.     /*
  114.     System.out.println("_________Repeat__________________________");
  115.     for(int i=0;i<10;i++){
  116.         System.out.println(Repeat[i]);
  117.     }
  118.     */
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement