package confidence;



import java.util.*;  //Need gaussian random variables


/**  
* ConfidenceModel simulates several normal samples
* @author Charles Stanton
* @version Sun Jul 14 11:39:33 PDT 2002
*/
public class ConfidenceModel{
    int n;    //number of datapoints
    int nTrials;
    double[][] normalData;
    double[] xBar;
    double[] s;
    Random random;
    
    
    public ConfidenceModel(int nDataPoints, int aNTrials) {
        n = nDataPoints;
        nTrials = aNTrials;
        normalData = new double[nTrials][n];
        xBar = new double[nTrials];
        s = new double[nTrials];
        random = new Random();
    }

            

/**
* play generates sample data
* @param nTrials is the number of tests to do
*/
    public void play(){
        
        for (int j=0; j< nTrials; j++){
        double sumx=0;
        double sumxx=0;
            for (int i=0; i<n; i++) {
                normalData[j][i] = random.nextGaussian();	
                sumx += normalData[j][i];
                sumxx += normalData[j][i]*normalData[j][i];
            }
        xBar[j] = sumx/n;
        s[j]= Math.sqrt((sumxx -sumx*sumx/n)/(n-1));
        }
    }

//public accessor methods
    public double[][] getNormalData(){return normalData;}
    public double[] getXBar(){return xBar;}
    public double[] getS(){ return s;}
    public int getNTrials(){return nTrials;}

}
