#include < iostream >
#include < math.h >

double rannum();
void sequence(int);

void main(){
    sequence(10);
    sequence(100);
    sequence(1000);
    sequence(10000);
}    

void sequence(int repeat){
    double number, average, variance, sumsqr=0.0, sum=0.0;
    int count;
    for (count=0; count<50; count++) rannum();
    for (count=0; count< repeat; count++){
        number=rannum();
        sumsqr+=number*number;
        sum+=number;
    }
    average=sum/repeat;
    variance=((repeat*sumsqr)-(sum*sum))/(repeat*(repeat-1));
    cout<< "The average value over " << repeat << " calls was:  "
        << average << endl
        << "With a variance of:  " << variance << endl << endl;
}

double rannum(){
    unsigned int a=13445, c=0, m=65536;
    unsigned int MASK=m-1;
    static int random=16811;
    return (random=(a*random+c)&MASK)/(double) m;
}