Verify distribution uniformity/Naive: Difference between revisions

added C++
(Added R code)
(added C++)
Line 107:
return 0;
}</lang>
 
=={{header|C++}}==
 
<lang cpp>
#include <map>
#include <iostream>
#include <cmath>
 
template<typename F>
bool test_distribution(F f, int calls, double delta)
{
typedef std::map<int, int> distmap;
distmap dist;
 
for (int i = 0; i < calls; ++i)
++dist[f()];
 
double mean = 1.0/dist.size();
 
bool good = true;
 
for (distmap::iterator i = dist.begin(); i != dist.end(); ++i)
{
if (std::abs((1.0 * i->second)/calls - mean) < delta)
{
std::cout << "Relative frequency " << i->second
<< " of result " << i->first
<< " deviates by more than " << delta
<< " from the expected value " << mean << "\n";
good = false;
}
}
 
return good;
}
</lang>
 
=={{header|Common Lisp}}==
973

edits