在数学上,二项式系数,或组合数,是定义为形如 (1 + x)ⁿ 展开后 x 的系数(其中 n 为自然数,k 为整数)。从定义可看出二项式系数的值为整数。
JavaScript 示例
计算从 n
个元素中选择 k
个元素的方法的个数(不重复且不按顺序)。
-
使用
Number.isNaN()
检查任何两个值是否为NaN
。 -
检查
k
是否小于0
、大于或等于n
,等于1
或n - 1
,并返回适当的结果。 -
检查
n - k
是否小于k
,并相应地切换其值。 -
从
2
到k
循环并计算二项式系数。 -
使用
Math.round()
解决计算中的舍入误差。
const binomialCoefficient = (n, k) => {
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
if (n - k < k) k = n - k
let res = n
for (let j = 2; j <= k; j++) res *= (n - j + 1) / j
return Math.round(res)
}
binomialCoefficient(8, 2) // 28
此示例来自 30 seconds of code 的 binomialCoefficient
网友评论