c++ - 在 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++ 没有对大整数的内置支持,因此首先使用浮点运算可能是一个不错的选择。
推荐阅读
- python - 如何在 vs 代码中缩进 jupyter 单元格/块
- ios - 自定义管理使用其他证书和配置文件进行签名
- javascript - Handlebars.js 使用 Json 填充下拉列表/子导航
- intellij-idea - 如何自动完成表达式/等式的左侧部分
- docker - 如何访问 docker 镜像 influxdb
- sql-server - 将文本与 varchar(max) 参数进行比较给出字符串或二进制数据将被截断
- c - 有没有办法接收各种数据类型?
- javascript - 谷歌地图的反向地理编码为不同的城市和位置返回不同大小的数组。我应该如何猜测要选择哪个数组
- php - 如何在我的模块中添加条件“如果布尔字段错误”?
- sql - 是否可以在 sql 文件中使用 spring boot 属性?