Boost C++ Libraries Home Libraries People FAQ More

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

返回二項式係數: nCk.

要求 k <= n.

最後一個策略 參數是可選的並且可以用來控制函數的行為: 如何處理錯誤, 使用哪種層次的精度等等. 參見策略文檔瞭解更多信息。

如果計算結果太大以至於T類型無法表示,那麼就可能返回溢出錯誤 .

精確度

對於較小參數的階乘以及對於較大參數的 β 函數,精度是一樣的(也就是說. 不超過一到兩個10的-5次方)。.

測試

二項式係數的抽樣測試數據由 functions.wolfram.com生成。

實現

在可能的情況下,二項式係數的計算使用階乘查找表來計算,並使用下面的關係式:

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

否則以使用下面關係式的β函數的方式來實現:

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

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


PrevUpHomeNext