Вы, вероятно, знакомы с библиотекой статистики, которая имеет бесплатные функции, например, классическая библиотека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для подробностей.