#include < iostream > #include < fstream > #include < math.h > double rannum(); void sequence(unsigned int, unsigned int); unsigned int a, random, m, MASK; ofstream fout("output"); void main(){ unsigned int aaa, mmm; aaa=66; mmm=(unsigned int) pow(2, 31); fout << "First run" << endl; sequence (aaa, mmm); //2^31 aaa=5; mmm=(unsigned int) pow(2, 30); fout << endl << endl << "Second run" << endl; sequence (aaa, mmm); //2^30 } void sequence(unsigned int aa, unsigned int mm){ int count; double rannbr; a=aa; m=mm; MASK=m-1; random=989473241; //this is the seed: a large prime number fout << random/(double) m << '\t'; for (count=0; count<4095; count++){ fout << (rannbr=rannum()) << endl << rannbr << '\t'; } fout << rannum() << endl; } double rannum(){ return (random=(a*random)&MASK)/(double) m; }