The specification for my project asks to produce normally distribute random numbers, and it specifically requires that I use inverse cumulative distribution function to convert uniformly distributed numbers to the standard normal ones.
The reason for this requirement: an older "polar" method exists, where a pair of uniformly distributed random numbers is converted to a pair of normally distributed numbers, which also involves throwing away the original numbers in some cases. This older method is known to produce imperfect distribution tails.
I want to use either std::normal_distribution
or boost::normal_distribution
, combined with corresponding random number engine. Is there a guarantee in C++ standard that precludes using polar method? If not, I'd like to know for sure that Visual C++ 14 or boost uses the modern method (inverse cumulative normal distribution).
Aucun commentaire:
Enregistrer un commentaire