MeanOne.java
/*Mark Copeland
MeanOne.java
Sept 24, 2001
*/
import java.math.*;
import java.util.*;
public class MeanOne
{
public static void print(int [] a)
{
for(int i=0; i< a.length; i++) {
System.out.print(a[i] + " ");
if((i+1)%5 == 0) System.out.println();
}
System.out.println();
} //end print method
public static int[] randomarrayInt(int high, int low, int size)
{
int numvals = high-low+1; //number integer values
int [] a = new int[size];
for( int i=0; i < size; i++)
a[i] = (int)(Math.random()*numvals + low);
return a;
} //end randomarrayInt
public static double arraymean(int [] a)
{
double sum = 0.0;
for(int i=0; i < a.length; i++)
sum += a[i];
return(sum/a.length);
}
public static double arraymedian(int [] a)
{
double Amedian;
if((a.length % 2) > 0) //odd length
Amedian = a[(a.length + 1)/2 - 1]; //-1 to shift for zero index
else { //even length
int [] temparray = new int[2];
System.arraycopy(a, a.length/2 - 1, temparray, 0, 2);
Amedian = arraymean(temparray);
}
return(Amedian);
}
public static double trimmean(int [] a)
{
int trim = (int)(0.1*a.length);
int [] temparray = new int[a.length - 2*trim];
System.arraycopy(a, trim, temparray, 0, a.length - 2*trim);
return (arraymean(temparray));
}
public static void main (String [] args)
{
int upper = 50;
int lower = 10;
int arraysize = 9;
int [] irandom = randomarrayInt(upper, lower, arraysize);
print(irandom);
Arrays.sort(irandom);
System.out.println("The mean is " + arraymean(irandom));
System.out.println("The median is " + arraymedian(irandom));
System.out.println("The trimmed mean is " + trimmean(irandom));
} // end of main
} //end os MeanOne class
|