Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Binomial Coefficients

Boost , Math Toolkit 2.5.0 , Factorials and Binomial Coefficients

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
#include <boost/math/special_functions/binomial.hpp>
namespace boost{ namespace math{
template <class T>
T binomial_coefficient(unsigned n, unsigned k);
template <class T, class Policy>
T binomial_coefficient(unsigned n, unsigned k, const Policy&);
}} // namespaces

Description.

Требуется k <=n.

Окончательный аргумент Политика является необязательным и может использоваться для контроля поведения функции: как он обрабатывает ошибки, какой уровень точности использовать и т.д. См. документ политики для более подробной информации.

Может вернуть результат overflow_error, если результат слишком большой, чтобы представлять в типе T.

[Important] Important

Функции, описанные выше, являются шаблонами, где аргумент T шаблона не может быть выведен из аргументов, переданных функции. Поэтому, если вы пишете что-то вроде:

boost::math::binomial_coeff(10, 2>>

Вы получите ошибку компилятора, указав, что такой функции нет. Вместо этого вам нужно четко указать тип возврата и написать:

boost::math::binomial_coeff<дп>(10,>>

Так что тип возврата известен. Далее, аргумент шаблона должен быть реальным типом, таким как float или ДП, а не целым типом, который слишком легко переполняется!

Accuracy

Точность будет такой же, как и для факториалов для небольших аргументов (т.е. не более одного или двух эпсилонов), и функция бета для более крупных аргументов.

Testing

Спотовые тесты для биномиальных коэффициентов используют данные, сгенерированные на function.wolfram.com.

Implementation

Биномные коэффициенты рассчитываются с использованием таблицы, где это возможно, расчета коэффициентов с использованием:

nCk = n! / (k!(n-k)!)

В противном случае он реализуется с точки зрения бета-функции с использованием отношений:

nCk = 1/ (k * beta(k, n-k+1)

и

nCk = 1/(n-k) * бета(k+1, n-k)


PrevUpHomeNext

Статья Binomial Coefficients раздела Math Toolkit 2.5.0 Factorials and Binomial Coefficients может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Factorials and Binomial Coefficients ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 05:45:34/0.0062661170959473/1