import java.util.*;
public class RandomGenAnalyzer {
private Random generator = new Random();
private int[] data;
private int valueMin;
private int valueMax;
private boolean limited;
static final int DEFAULT_SIZE = 1000;
public RandomGenAnalyzer(int numberElements, int valueMax) {
data = new int[numberElements];
valueMin = 0;
this.valueMax = valueMax;
limited = true;
}
public RandomGenAnalyzer(int numberElements) {
data = new int[numberElements];
valueMin = Integer.MIN_VALUE;
valueMax = Integer.MAX_VALUE;
limited = false;
}
public RandomGenAnalyzer() {
this(DEFAULT_SIZE);
}
public void fill() {
for (int i = 0; i < data.length ; ++i) {
data[i] = generator.nextInt();
if ( limited )
{
data[i] = Math.abs(data[i])%valueMax;
} // end of if ()
} // end of for
}
private int qttElem(int low, int high) {
int count = 0;
for (int i = 0; i < data.length ; ++i) {
if ( data[i] >= low & data[i] < high )
{
++count;
} // end of if ()
}
return count;
}
public int qtt1Qtr() {
int low = valueMin;
// high: valueMin + (valueMax-valueMin)/4;
int high = (int)(.25*valueMax + .75*valueMin);
return qttElem(low, high);
}
public int qtt2Qtr() {
int low = (int)(.25*valueMax + .75*valueMin);
// high: valueMin + 2*(valueMax-valueMin)/4;
int high = (int) (.5*valueMax + .5*valueMin);
return qttElem(low, high);
}
public int qtt3Qtr() {
int low = (int) (.5*valueMax + .5*valueMin);
// high: valueMin + 3*(valueMax-valueMin)/4;
int high = (int) (.75*valueMax +.25*valueMin);
return qttElem(low, high);
}
public int qtt4Qtr() {
int low = (int) (.75*valueMax +.25*valueMin);
int high = valueMax;
return qttElem(low, high);
}
public static void main (String[] args)
{
RandomGenAnalyzer rga = new RandomGenAnalyzer();
switch ( args.length )
{
case 0:
// ja esta feito...
break;
case 1:
rga = new RandomGenAnalyzer(Integer.parseInt(args[0]));
break;
case 2:
rga = new RandomGenAnalyzer(Integer.parseInt(args[0]),
Integer.parseInt(args[1]));
break;
default:
System.err.println("Uso: RandomGenAnalyzer [qtde_elem [valor_max]]");
System.exit(1);
break;
} // end of switch ()
rga.fill();
System.out.println(rga.qtt1Qtr());
System.out.println(rga.qtt2Qtr());
System.out.println(rga.qtt3Qtr());
System.out.println(rga.qtt4Qtr());
System.exit(0);
} // end of main ()
}
source code