每日一算法:二项式系数

作者: lio_zero | 来源:发表于2021-05-01 12:50 被阅读0次

    在数学上,二项式系数,或组合数,是定义为形如 (1 + x)ⁿ 展开后 x 的系数(其中 n 为自然数,k 为整数)。从定义可看出二项式系数的值为整数。

    JavaScript 示例

    计算从 n 个元素中选择 k 个元素的方法的个数(不重复且不按顺序)。

    • 使用 Number.isNaN() 检查任何两个值是否为 NaN

    • 检查 k 是否小于 0、大于或等于 n,等于 1n - 1,并返回适当的结果。

    • 检查 n - k 是否小于 k,并相应地切换其值。

    • 2k 循环并计算二项式系数。

    • 使用 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

    相关文章

      网友评论

        本文标题:每日一算法:二项式系数

        本文链接:https://www.haomeiwen.com/subject/plmarltx.html