Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.09.2026
Размер:
1 Кб
Скачать
#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;
    
}

Соседние файлы в папке m1