是否理智地检查我针对Google表格的JavaScript析因函数?

时间:2018-08-28 14:45:16

标签: javascript google-sheets cdf

我需要为电子表格中的更大函数计算阶乘(对于超几何概率,为CDF)。我尝试了许多在本文不同文章中描述的方法,但是没有一种方法能给我正确的结果。如果我插入(3),我会得到(2),这对我来说毫无意义。谁能解释我在做什么错?

此外,从我读到的内容来看,由于JavaScript无法存储大量数字,我将面临较大阶乘的问题?我看到一个解决方案,建议我使用字符串来表示大整数,但这看起来非常复杂...关于解决此问题的更简便方法的任何想法吗?。

功能:

function MyFac(x) {    
    var fac=x;
    var i=1;

    while (i<x) {        
        fac=fac*i;
        i++;        
    }        

    return fac;        
}

1 个答案:

答案 0 :(得分:0)

这是您的代码的更正:

function MyFac(x) {    
    var fac=x;

    while (x>1) {        
        x--;        
        fac=fac*x;
    }        

    return fac;        
}

console.log(MyFac(5))
console.log(MyFac(4))
console.log(MyFac(3))
console.log(MyFac(2))

您可以在这里找到更好的阶乘实现:

Fast factorial function in JavaScript