自然数幂和 拉格朗日插值法和第二类斯特林数法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011056504/article/details/82533677

写在这里,目的是在以后需要看的时候不用再去网上抄(划掉)

s ( n ) = i = 1 n i k

拉格朗日插值法

给定若干个点值,(x0,y0),(x1,y1),(xn,yn),它们的差值多项式

L ( x ) = i = 0 n y i j i x x j x i x j

听说自然数幂和可以表示为k+1次多项式函数。
求自然数幂和的时候,就直接取点值为(0,s(0)),(1,s(1)),(k+1,s(k+1))
于是
L ( n ) = i = 0 k + 1 s ( i ) j i n j i j

L ( n ) = i = 0 k + 1 s ( i ) ( 1 ) k + 1 i n ( n 1 ) . . . ( n i + 1 ) ( n i 1 ) . . . ( n k 1 ) i ! ( k + 1 i ) !

预处理k以内的自然数幂和,求个逆元就好了。
复杂度 O ( k )

第二类斯特林数法

但是如果不能求逆元
已知(显然)

n k = i = 0 k { i k } n i _

可以用组合意义理解。
那么
i = 1 n i k = j = 1 n i = 0 k { i k } j i _

= i = 0 k { i k } j = 1 n j i _

= i = 0 k { i k } i ! j = 1 n C j i

= i = 0 k { i k } i ! C n + 1 i + 1

这样的话就不用逆元了,复杂度是 O ( k 2 )

猜你喜欢

转载自blog.csdn.net/u011056504/article/details/82533677