#include <iostream> #include <fstream> #include <stdio.h> #include <math.h> using namespace std; const unsigned int n = 0xFFFF; const unsigned int m = 16807; const unsigned int b = 0; static long seed = 0xAAAA; long uniform() { long unsigned int hi = m * (seed & n); long unsigned int lo = m * (seed >> 16); lo+= (hi & 0x7FFF) << 16; lo+= hi >> 15; if (lo > 0x7FFFFFFFF) lo -= 0x7FFFFFFF; seed=(long) lo; return seed %10; } void store_res(long * res, int freqs[10], int size){ std::ofstream myfile, freqcsv; myfile.open("gva_res.csv"); freqcsv.open("gva_freqs.csv"); int i; for (i = 0; i < size; i ++){ freqs[res[i]] ++; myfile << res[i]; myfile << "\n"; } for (i=0; i < 10; i++){ freqcsv << "0."; freqcsv << i; freqcsv << ", "; freqcsv << freqs[i]; freqcsv << "\n"; } myfile.close(); freqcsv.close(); } int main(int argc, char **argv) { if(argc <2) return -1; long unif[atoi(argv[1])]; // create the outputs for (int i = 0; i < atoi(argv[1]); i++) unif[i] = uniform(); // store hist freqs int freqs[10]; for(int i=0; i < 10; i ++) freqs[i] = 0; store_res(unif, freqs, atoi(argv[1])); for (int i = 0; i < atoi(argv[1]); i++) cout << unif[i] << endl; }