#include #include #include #include #define MAX_N 1000000 #define MAX_BINS 100 // function prototipes double ExpDist(void); int fillData(double data[], double); void makeHist(double *data, int *hist, double min, double max, int nbins, int nData); void writeHist(int *hist, int nbins, double min, double max); void writeExp(int nbins, double min, double max, double lambda); int main() { /* Generate numbers distributed with exponential distribution with mean life lambda. Make histogram. */ unsigned long int seed; double data[MAX_N]; int hist[MAX_BINS]={0}; int N,i,nbins; double lambda; double min,max; seed = time(0); srand48(seed); do { printf("Inserire la vita media \n"); scanf("%lf",&lambda); } while (lambda <= 0); N=fillData(data,lambda); // Fill vector data with random numbers min = 0.; max = 15.*lambda; do { printf("Number of bins for histogram?\n"); scanf("%d",&nbins); } while (nbins <= 0 || nbins > MAX_BINS); makeHist(data, hist, min, max, nbins, N); writeHist(hist,nbins,min,max); writeExp(nbins,min,max,lambda); // write analytical distribution function return 0; } int fillData(double data[], double lambda) { int k,N; double g; do { printf("Number of data points?\n"); scanf("%d",&N); } while(N<0 || N>MAX_N); for (k=0;k