考虑给出 n 对 (ai,bi) ,以及一个 n−1 次多项式 f(x) 满足 f(ai)=bi ,要求对于一个 x′ ,求出 f(x′) 。
然后有这么个式子:
f(x)≡f(x0)modx−x0
*这个式子同样在多项式多点求值中用到了。
等于现在我们需要求的是这个:
{f(x)≡b1modx−a1f(x)≡b2modx−a2⋯f(x)≡bnmodx−an
让我们回忆一下 CRT (中国剩余定理) :
首先令 Mi=∏j≠iaj ,那么显然有:
∀j≠i,Mi≡0modaj∀j≠i,Mi⋅C≡0modajMi≡bimodai
其中 C 是任意常数。所以只需要满足 Mi⋅C≡bimodai ,令 C 为 Mi 在 modai 意义下的逆元即可,这样就可以得到:
Ans=n∑i=1Mi⋅M−1,aii⋅bi
这样就没了。
这样下来的话和 CRT 也差不多,令:
Mi(x)=∏j≠i(x−ai)F(x)=n∑i=1Mi(x)⋅Mi(x)−1,(x−ai)⋅bi
然后,因为有:
f(x)≡f(x0)modx−x0Mi(ai)=∏j≠i(ai−aj)
就可以得到:
Mi(x)≡Mi(ai)modx−aiMi(x)≡(∏j≠i(ai−aj))modx−ai
这样的话回到原式:
F(x)=n∑i=1Mi(x)⋅Mi(x)−1,(x−ai)⋅bi=n∑i=1Mi(x)⋅bi∏j≠i(ai−aj)=n∑i=1bi⋅∏j≠i(x−aj)∏j≠i(ai−aj)
就得到答案了。
1 条评论
TNT · 2020年5月29日 2:16 下午
stO