阶乘模大质数

本文介绍了如何使用多项式除法和多点求值来解决阶乘模大质数的问题。首先解释了多项式除法的原理,然后通过多项式多点求值来高效计算特定点的多项式值。最后,提出了一种时间复杂度为O(nlog2n)的方法,通过构造特定多项式并进行多点求值得到n! mod p的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

现在才学这个的我可以说是很菜了。

多项式除法

给出一个nnn次多项式F(x)F(x)F(x)和一个mmm次多项式G(x)G(x)G(x),求一个n−mn-mnm次多项式Q(x)Q(x)Q(x)和一个次数小于mmm的多项式R(x)R(x)R(x),使得F(x)=Q(x)G(x)+R(x)F(x)=Q(x)G(x)+R(x)F(x)=Q(x)G(x)+R(x)

首先对于一个nnn次多项式F(x)F(x)F(x),设G(x)=xnF(1x)G(x)=x^nF(\frac{1}{x})G(x)=xnF(x1),可以发现G(x)G(x)G(x)就相当于把F(x)F(x)F(x)的系数反转得到的一个多项式,不妨设G(x)=FT(x)G(x)=F^T(x)G(x)=FT(x)
考虑把等式变成这样一个形式:xnF(1x)=xn−mQ(1x)xmG(1x)+xnR(1x)x^nF(\frac{1}{x})=x^{n-m}Q(\frac{1}{x})x^mG(\frac{1}{x})+x^nR(\frac{1}{x})xnF(x1)=xnmQ(x1)xmG(x1)+xnR(x1)
也就是FT(x)=QT(x)GT(x)+xnR(1x)F^T(x)=Q^T(x)G^T(x)+x^nR(\frac{1}{x})FT(x)=QT(x)GT(x)+xnR(x1)
由于R(x)R(x)R(x)次数小于mmm,所以xnR(1x)x^nR(\frac{1}{x})xnR(x1)不大于n−mn-mnm次项的系数都为000,所以在模xn−m+1x^{n-m+1}xnm+1意义下就有FT(x)=QT(x)GT(x)(modxn−m+1)F^T(x)=Q^T(x)G^T(x)\pmod{x^{n-m+1}}FT(x)=QT(x)GT(x)(modxnm+1)
于是有

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值