这些被称为多项式系数,我将其表示为m(a,b,...)
.
你可以通过利用这个恒等式来有效地计算它们,避免溢出(这应该很容易证明):
m(a,b,c,...) = m(a-1,b,c,...) + m(a,b-1,c,...) + m(a,b,c-1,...) + ...
m(0,0,0,...) = 1 // base case
m(anything negative) = 0 // base case 2
然后使用递归来计算系数就很简单了。请注意,为了避免指数运行时间,您需要缓存结果(以避免重新计算)或使用动态编程。
要检查是否溢出,只需确保总和不会溢出即可。
是的,使用任意精度库来完成这个简单的任务是一个非常糟糕的主意。