/*******************************************************************************
* Name: T. Shy
* Login: jsshy
* Precept: P00
*
* Compilation: javac PlotMean.java
* Execution: java PlotMean N
* Dependencies: StdDraw.java
*
* Plots for N random doubles in the range [0., 1.) and their running average.
* N is the first command-line argument.
*
******************************************************************************/
public class PlotMean
{
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
double[] a = new double[N];
//initialize "a" to random double values
for (int i = 0; i < N; i++) {
a[i] = Math.random();
}
StdDraw.setXscale(0, N-1);
if (N > 0) StdDraw.setPenRadius(0.5/N);
double sum = 0.0;
double mean = 0.0;
for (int i = 0; i < N; i++) {
sum += a[i];
mean = sum/(i + 1);
StdDraw.setPenColor(StdDraw.BLACK);
StdDraw.point(i, a[i]);
//plot the running mean of the values seen so far
StdDraw.setPenColor(StdDraw.RED);
StdDraw.point(i, mean);
}
}
}