JavaScript 如何计算两个整数n和k的二项式系数
以下是二项式系数的常见定义。
二项式系数C(n, k)可以定义为在展开式(1 + x)^n中x^k的系数。二项式系数C(n, k)还可以给出从n个对象中无序地选择k个对象的方式的数量,更正式地说,是一个n元素集合的k元素子集(或k组合)的数量。
问题说明:编写一个函数,接受两个参数n和k,并返回二项式系数C(n, k)的值。例如,对于n = 4和k = 2,函数应返回6,对于n = 5和k = 2,函数应返回10。
方法:以下是创建返回两个整数的二项式系数的函数的步骤。
- 创建一个接受n和k两个参数的函数。
- 现在检查n和k是否都是数字。如果它们中的一个或两个都不是数字,则返回NaN。
- 现在检查k是否小于0或k是否大于n。如果其中一个条件为true,则返回0。
- 现在检查k是否等于1或k是否等于n。如果其中一个条件为true,则返回1。
- 现在检查k是否等于1或k是否等于(n-1)。如果其中一个条件为true,则返回n。
- 现在编写获取二项式系数的逻辑。
示例:此示例显示了上述解释的方法。
<script>
function binomialCoefficient (n, k){
// Checking if n and k are integer
if(Number.isNaN(n) || Number.isNaN(k)){
return NaN;
}
if(k < 0 || k > n){
return 0
}
if(k === 0 || k === n){
return 1
}
if(k === 1 || k === n - 1){
return n
}
let res = n;
for(let i = 2; i <= k; i++){
res *= (n - i + 1) / i;
}
return Math.round(res);
}
console.log(binomialCoefficient(10, 2))
</script>
输出结果:
45
极客教程