Verify distribution uniformity/Naive: Difference between revisions
Verify distribution uniformity/Naive (view source)
Revision as of 21:46, 24 September 2009
, 14 years agoadded 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}}==
|