PROGRAM TO TEST UNIFORMITY OF RANDOM NO in JAVA


import java.io.*;
import java.util.*;
class randomuni
{ 
  public static void main(String args[])throws IOException
  
  { int i,j;
    int r[]=new int[100];
    
    int arr1[]=new int[100];
    BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
    
    System.out.println("Random number generated using in built function ");
    Random randomGenerator = new Random();
    for (i = 0; i < 100; i++)
    {
      int randomInt = randomGenerator.nextInt(100);
      arr1[i]=randomInt;
      System.out.print(randomInt+" ");
    }

    System.out.println("\nRandom number generated using linear congruential method ");
    System.out.println("Enter the values of X0,a,c and m \n");
    int xo=Integer.parseInt(b.readLine());
    int a=Integer.parseInt(b.readLine());
    int c=Integer.parseInt(b.readLine());
    int m=Integer.parseInt(b.readLine());

    for(i=0;i<100;i++)
    {
    int rand=((a*xo+c)%m);
    r[i]=rand;
    System.out.print(r[i]+" ");
    xo=rand;
    }
    System.out.println("\nSelect any method to test uniformity--1.kolmogorav  2.chi square ");
    i=Integer.parseInt(b.readLine());
    switch(i)
    {
     case 1:double dplus,dminus,dplmax=0,dmimax=0,d,cv=0.410;
            for(i=0;i<99;i++)
            { for(j=i+1;j<100;j++)
              {  if(r[i]>r[j])
                 { int temp=r[i];
                   r[i]=r[j];
                   r[j]=temp; 
                 }
              }
            } 
             for(i=0;i<100;i++)
            { j=i+1;
              dplus=j/100-r[i];
              dminus=r[i]-((j-1)/100);
              if(i==0)
               {dplmax=dplus; 
                dmimax=dminus;
               }
              else
               {if(dplus>dplmax)
                     dplmax=dplus;

                 if(dminus>dmimax)
                     dmimax=dminus;
               }  
            }
            System.out.println("d+max= "+dplmax+"\nd-max= "+dmimax) ; 
            if(dmimax>dplmax)
                d=dmimax;
            else
                d=dplmax; 
            System.out.println("d= "+d) ; 
            if(d<=cv)
              System.out.println("\nRandom no. uniformly distributed ") ;  
            else
              System.out.println("\nRandom no. not uniformly distributed ") ; 
           break;

     case 2:float o[]=new float[100];
            double x=0,e=10,cv1=25.2;
            for(i=0;i<100;i++)
            {   if(r[i]<10)
                    o[0]++;
                else if(r[i]<20)
                    o[1]++;
                else if(r[i]<30)
                    o[2]++;
                else if(r[i]<40)
                    o[3]++;
                else if(r[i]<50)
                    o[4]++;
                else if(r[i]<60)
                    o[5]++;
                else if(r[i]<70)
                    o[6]++;
                else if(r[i]<80)
                    o[7]++;
                else if(r[i]<90)
                    o[8]++;
                else if(r[i]<100)
                    o[9]++;
               }
               
                for(i=0;i<100;i++)
                 { x+=(o[i]-e)/e ;}                                
                if(x<=cv1)
                   System.out.println("\nRandom no. uniformly distributed ") ;  
                else
                   System.out.println("\nRandom no. not uniformly distributed ") ;  
              break;

    }

  }     
 }

/*output

Z:\>javac randomuni.java

Z:\>java randomuni
Random number generated using in built function
9 30 48 89 33 92 3 7 55 29 17 56 48 42 65 65 38 97 34 72 64 8 43 43 68 57 10 5 2
2 64 76 26 29 61 72 30 91 42 64 55 46 77 61 36 62 55 41 86 53 96 92 67 15 19 96
90 68 35 67 46 72 72 48 79 58 11 69 18 12 28 43 42 18 10 23 55 97 66 98 72 52 94
 0 42 15 5 19 3 57 87 11 85 0 67 46 90 51 69 70 14
Random number generated using linear congruential method
Enter the values of X0,a,c and m

1
13
0
100
13 69 97 61 93 9 17 21 73 49 37 81 53 89 57 41 33 29 77 1 13 69 97 61 93 9 17 21
 73 49 37 81 53 89 57 41 33 29 77 1 13 69 97 61 93 9 17 21 73 49 37 81 53 89 57
41 33 29 77 1 13 69 97 61 93 9 17 21 73 49 37 81 53 89 57 41 33 29 77 1 13 69 97
 61 93 9 17 21 73 49 37 81 53 89 57 41 33 29 77 1
Select any method to test uniformity--1.kolmogorav  2.chi square
1
d+max= -1.0
d-max= 97.0
d= 97.0

Random no. not uniformly distributed

Z:\>javac randomuni.java

Z:\>java randomuni
Random number generated using in built function
7 42 54 1 95 77 77 10 34 42 51 45 17 33 0 64 24 73 19 72 0 3 50 80 8 3 87 58 83
23 98 78 37 41 6 3 95 62 99 84 86 57 87 88 80 68 4 50 69 55 38 92 49 64 74 95 80
 12 2 25 16 65 42 7 95 55 92 74 96 92 36 56 51 48 62 55 97 90 36 43 42 91 97 94
58 69 68 26 28 63 31 2 98 44 84 85 23 37 73 20
Random number generated using linear congruential method
Enter the values of X0,a,c and m

1
13
0
100
13 69 97 61 93 9 17 21 73 49 37 81 53 89 57 41 33 29 77 1 13 69 97 61 93 9 17 21
 73 49 37 81 53 89 57 41 33 29 77 1 13 69 97 61 93 9 17 21 73 49 37 81 53 89 57
41 33 29 77 1 13 69 97 61 93 9 17 21 73 49 37 81 53 89 57 41 33 29 77 1 13 69 97
 61 93 9 17 21 73 49 37 81 53 89 57 41 33 29 77 1
Select any method to test uniformity--1.kolmogorav  2.chi square
2

Random no. uniformly distributed

*/  

0 comments :