1 #include <Base/Math/Random.hh>
8 int main(
int argc,
char *argv[])
11 const unsigned num_vals = 10000000;
12 unsigned min_val = 10, max_val = 200;
13 vector<unsigned> hist(max_val-min_val+1, 0);
14 for (
unsigned i=0; i<num_vals; i++){
16 BIASASSERT(val>=(
int)min_val && val<=(
int)max_val);
20 double mean_hist_entry = (double)num_vals / (
double)hist.size();
21 double max_acceptable_hist_eps = max(5.0, mean_hist_entry*0.1);
22 for (
unsigned i=0; i<hist.size(); i++){
23 double hist_eps = fabs((
double)hist[i] - mean_hist_entry);
24 if (hist_eps>max_acceptable_hist_eps){
25 for (
unsigned t=0; t<hist.size(); t++){
27 cout << t+min_val <<
"\t"<<hist[t] << endl;
29 cerr <<
"hist["<<t+min_val<<
"]: "<<hist[t]
30 <<
" (eps "<< fabs((
double)hist[t] - mean_hist_entry)<<
")\n";
32 cerr <<
"#mean hist_entry: "<<mean_hist_entry<<endl;
38 for (
unsigned t=0; t<hist.size(); t++){
39 cout << t+min_val <<
"\t"<<hist[t] << endl;
43 cout <<
"#mean hist_entry: "<<mean_hist_entry<<endl;
int GetUniformDistributedInt(const int min, const int max)
get uniform distributed random variable including min/max
class for producing random numbers from different distributions