Вы, вероятно, знакомы с библиотекой статистики, которая имеет бесплатные функции, например, классическая библиотекаNAG Cи соответствующаябиблиотека NAG FORTRAN,Microsoft Excel BINOMDIST (число_s, исследование, вероятность_s, накопление),R,MathCAD pbinomи многие другие.
Если это так, вы можете найти «Распределения как объекты» незнакомыми, если не чужими.
Однаконе паникуйте, и определение, и использование не очень сильно отличаются.
Ниже приводится очень простой пример генерации тех же значений, что и библиотекаNAG Cдля биномиального распределения. (Если вы найдете несколько иные значения, версия Boost C++, использующая двойной или лучший, скорее всего, будет более точной.) Конечно, точность обычно не является проблемой для большинства приложений этой функции.
Спецификация функции NAG
void nag_binomial_dist(Integer n, double p, Integer k,
double *plek, double *pgtk, double *peqk, NagError *fail)
и называется
g01bjc(n, p, k, &plek, &pgtk, &peqk, NAGERR_DEFAULT);
Эквивалент использования этой библиотеки Boost C++:
using namespace boost::math;  
binomial my_dist(4, 0.5); 
и значения могут быть выведены таким образом:
cout
  << my_dist.trials() << " "             
  << my_dist.success_fraction() << " "   
  << cdf(my_dist, 2) << "  "             
  << cdf(complement(my_dist, 2)) << "  " 
  << pdf(my_dist, 2) << endl;            
cdfdist,k]эквивалентен библиотеке NAGplek, более низкая вероятность хвоста<= k
cdfдополнить[дист,k]эквивалентно библиотеке NAGpgtk, верхняя вероятность хвоста >k
pdfdist,k]эквивалентен библиотеке NAGpeqk, точечная вероятность == k
См.binomial_example_nag.cppдля подробностей.