js实现概率公式C(n, m)

作者:norion时间:2016年8月18日评论次数:0 条

最近遇到一个这样一个需求,在n个数字中选出m个组合数,刚好用到概率公式C(n,m),其中:n是下标,m是上标 (C上面m,下面n),而C(n, m)=(n!)/(m!)/(n-m)!,那么“!”是什么意思呢?

比如n是5、m是2,那么n!就是5*4*3*2*1,所以这里得出C(5, 2)=(5!)/(2!)/(5-2)!=(5*4*3*2*1)/(2*1)/(3*2*1),这样代码就好实现了:

function a(n, m){
    return n<m ? 0 : f(n)/f(m)/f(n-m); //概率公式C(n, m)=(n!)/m!/(n-m)!
    function f(h){
        for (var i = h, r = 1; i > 0; i--) {
            r *= i
        }
        return r;
    }
}

console.log( a(5, 2) ) // 10

上一篇: 利用transform和伪类让宽度自适应高度居中

下一篇:根据岁数算生肖

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注