在C++中是否有计算nCr的内置函数?
在python 3.8中,有一个用于计算组合数的内置函数(nCr(n, k)):
>>>from math import comb
>>>comb(10,3)
120
C++中有这样的函数吗?
回答
该beta从数学库函数可用于表达二项式系数(又名NCR)。
double binom(int n, int k) {
return 1/((n+1)*std::beta(n-k+1,k+1));
}
来源。
此函数可用于 C++17 或作为 C++ 数学特殊函数扩展实现的一部分 (ISO/IEC 29124:2010)。在后一种情况下,您的实现可能要求您#define __STDCPP_WANT_MATH_SPEC_FUNCS__ 1在包含<cmath>可用函数的标头之前。
请注意,与 Python 不同,C++ 没有对大整数的内置支持,因此首先使用浮点运算可能是一个不错的选择。