Добавил:
okley
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Моделирование (1 сем, мага) / m1 / prog1
.cpp#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include "hist.hpp"
// This function generates basic random
double gamma(){
return (rand()+0.5)/(RAND_MAX+1.0);
}
// simulate discrete distributions
int main(){
double ksi; // random value
int x[]={ 2, 0, 1, 3};
double px[]={ 3./8., 1./3., 1./6., 1./8.};
int k; // index
srand(time(NULL)); // initialize the random generator
// discrete random from array
int num_bin = 4;
Hist *hist = new Hist(-0.5, num_bin - 0.5, num_bin);
for( int i=0; i<2400000; i++ ){
k = 0;
double G = gamma() - px[k];
while (G >= 0) {
k++;
G = G - px[k];
}
// ------------------------------------
// here simulation code
// ------------------------------------
hist->fill(x[k]); // fill histogramm
}
for(int i=0; i<hist->get_num_bin(); i++){
std::cout << hist->get_bin(i) << "\t"; // get middle of bin boundary
std::cout << hist->get_bin_value(i) << "\n"; // get number of counts in the bin
}
hist->draw(40);
delete hist; // destroy histogramm
getchar(); // wait "Enter" to close window
return 0;
}
