daily pastebin goal
40%
SHARE
TWEET

Generador.java

alduncin Jul 1st, 2013 71 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Top