Scipy计算多项式系数

时间:2016-02-25 20:04:36

标签: python scipy

简短版本: 标题说的一切。

日志版本:

我计算了前几个元素的多项式系数。看一下wiki,数学很简单。

N! / (k1! * k2! * ....)

对于中等大小的N,如果你只是暴力破解,数字就会变得相当愚蠢。例如,

500!/ (495! * 4! * 1!)

有500个!在其中,math.log(factorial(500), 10) ~= 1134当表达式也减少时:

500!/ (495! * 4! * 1!) = 500 * 499 * 498 * 497 * 496 / 24

我尝试使用scipy.misc.comb,这非常适合二项式。对于我的用例,k1比ki(i!= 1)大得多,所以我可以计算二项式系数,然后将其转换为相应的多项式系数,但这似乎有点左右。

我认为有更好的方法。

1 个答案:

答案 0 :(得分:2)

这在数学堆栈交换中得到了解答,看起来很合理。

我认为原始答案所做的只是枚举所有术语并取消,然后计算最终结果。所以从蛮力中移除了一步,但看起来并没有溢出。

也许这与计算生物系数相同。无论如何,那里还引用了一个对数算法,我乍一看并不理解。

https://math.stackexchange.com/questions/204085/how-do-i-compute-multinomials-efficiently