Scipy计算多项式系数

3

简短版: 标题已经说了一切。

日志版本:

我正在计算前几个元素的多项式系数。查看wiki,数学相当简单。

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

对于中等规模的N,如果你只是采用暴力破解的方式,数字很快就会变得非常荒谬。例如,

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

这段文字提到了500的阶乘,math.log(factorial(500), 10) ~= 1134 表示当表达式计算结果时,它约等于1134。

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

我尝试使用scipy.misc.comb进行玩耍,它对于二项式很有效。对于我的用例,k1要比ki(i!= 1)大得多,因此我可以计算二项式系数,然后将其转换为相应的多项式系数,但这似乎有点绕。我认为有更好的方法。
1个回答

2

这个问题在数学堆栈交换上得到了解答,并且看起来很合理。

我认为原始答案所做的只是列举所有项并取消它们,然后计算最终结果。所以可以说是比暴力法少了一步,但不会溢出。

也许这与计算二项式系数相同。无论如何,那里还引用了一个对数算法,我一开始没有理解。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接