8.12.17 ACM-ICPC数学 数论 同余方程

8.12.17 ACM-ICPC数学 数论 同余方程

定义

同余方程是关于未知数 𝑥x 的模 𝑚m 的一元方程,表示为: 𝑓(𝑥)≡0(mod𝑚)f(x)≡0(modm) 其中,𝑓(𝑥)=∑𝑖=0𝑛𝑎𝑖𝑥𝑖f(x)=∑i=0n​ai​xi,未知数 𝑥∈𝑍𝑚x∈Zm​,𝑎𝑛≢0(mod𝑚)an​≡0(modm) 则称其为 𝑛n 次同余方程。类似地可以定义同余方程组。

同余方程的求解

根据中国剩余定理,求解模合数 𝑚m 的同余方程可以转化为求解模素数幂次的情况。以下介绍素数幂模同余方程和素数模同余方程的相关理论。

素数幂模同余方程

假设模数 𝑚=𝑝𝑎m=pa(𝑝∈𝑃,𝑎∈𝑍>1p∈P,a∈Z>1​),若 𝑥0x0​ 是方程 𝑓(𝑥)≡0(mod𝑝𝑎)f(x)≡0(modpa) 的解,则 𝑥0x0​ 是方程 𝑓(𝑥)≡0(mod𝑝𝑎−1)f(x)≡0(modpa−1) 的解。这启发我们通过较低的模幂次的解去构造较高的模幂次的解。我们有如下定理:

定理 1

对素数 𝑝p 和整数 𝑎>1a>1,取整系数多项式 𝑓(𝑥)=∑𝑖=0𝑛𝑎𝑖𝑥𝑖f(x)=∑i=0n​ai​xi(𝑝𝑎∤𝑎𝑛pa∤an​),令 𝑓′(𝑥)=∑𝑖=1𝑛𝑖𝑎𝑖𝑥𝑖−1f′(x)=∑i=1n​iai​xi−1 为其导数。令 𝑥0x0​ 为方程 𝑓(𝑥)≡0(mod𝑝𝑎−1)f(x)≡0(modpa−1) 的解,则:

  1. 若 𝑓′(𝑥0)≢0(mod𝑝)f′(x0​)≡0(modp),则存在整数 𝑡t 使得 𝑥=𝑥0+𝑝𝑎−1𝑡x=x0​+pa−1t 是方程 𝑓(𝑥)≡0(mod𝑝𝑎)f(x)≡0(modpa) 的解。

  2. 若 𝑓′(𝑥0)≡0(mod𝑝)f′(x0​)≡0(modp) 且 𝑓(𝑥0)≡0(mod𝑝𝑎)f(x0​)≡0(modpa),则对 𝑡=0,1,…,𝑝−1t=0,1,…,p−1,由式 (3) 确定的 𝑥x 均为方程 (4) 的解。

  3. 若 𝑓′(𝑥0)≡0(mod𝑝)f′(x0​)≡0(modp) 且 𝑓(𝑥0)≢0(mod𝑝𝑎)f(x0​)≡0(modpa),则不能由式 (3) 构造方程 (4) 的解。

证明

假设式 (3) 是方程 (4) 的解,即 𝑓(𝑥0+𝑝𝑎−1𝑡)≡0(mod𝑝𝑎)f(x0​+pa−1t)≡0(modpa) 整理后可得 𝑓(𝑥0)+𝑝𝑎−1𝑡𝑓′(𝑥0)≡0(mod𝑝𝑎)f(x0​)+pa−1tf′(x0​)≡0(modpa) 于是 𝑡𝑓′(𝑥0)≡−𝑓(𝑥0)𝑝𝑎−1(mod𝑝)tf′(x0​)≡−pa−1f(x0​)​(modp) 若 𝑓′(𝑥0)≢0(mod𝑝)f′(x0​)≡0(modp),则关于 𝑡t 的方程 (5) 有唯一解 𝑡0t0​,代入式 (3) 可验证其为方程 (4) 的解。 若 𝑓′(𝑥0)≡0(mod𝑝)f′(x0​)≡0(modp) 且 𝑓(𝑥0)≡0(mod𝑝𝑎)f(x0​)≡0(modpa),则任意 𝑡t 均能使方程 (5) 成立,代入式 (3) 可验证其均为方程 (4) 的解。 若 𝑓′(𝑥0)≡0(mod𝑝)f′(x0​)≡0(modp) 且 𝑓(𝑥0)≢0(mod𝑝𝑎)f(x0​)≡0(modpa),则方程 (5) 无解,从而不能由式 (3) 构造方程 (4) 的解。

由此,我们可以将素数幂模同余方程化归到素数模同余方程的情况。

素数模同余方程

设 𝑝∈𝑃p∈P,整系数多项式 𝑓(𝑥)=∑𝑖=0𝑛𝑎𝑖𝑥𝑖f(x)=∑i=0n​ai​xi,其中 𝑝∤𝑎𝑛p∤an​,𝑥∈𝑍𝑝x∈Zp​。

定理 2

若方程 𝑓(𝑥)≡0(mod𝑝)f(x)≡0(modp) 有 𝑘k 个不同的解 𝑥1,𝑥2,…,𝑥𝑘x1​,x2​,…,xk​(𝑘≤𝑛k≤n),则: 𝑓(𝑥)≡𝑔(𝑥)∏𝑖=1𝑘(𝑥−𝑥𝑖)(mod𝑝)f(x)≡g(x)∏i=1k​(x−xi​)(modp) 其中 deg⁡𝑔=𝑛−𝑘degg=n−k 且 [𝑥𝑛−𝑘]𝑔(𝑥)=𝑎𝑛[xn−k]g(x)=an​。

证明

对 𝑘k 应用数学归纳法。

当 𝑘=1k=1 时,做多项式带余除法,有 𝑓(𝑥)=(𝑥−𝑥1)𝑔(𝑥)+𝑟f(x)=(x−x1​)g(x)+r,其中 𝑟∈𝑍r∈Z。由 𝑓(𝑥1)≡0(mod𝑝)f(x1​)≡0(modp) 可知 𝑟≡0(mod𝑝)r≡0(modp),从而 𝑓(𝑥)≡(𝑥−𝑥1)𝑔(𝑥)(mod𝑝)f(x)≡(x−x1​)g(x)(modp)。

假设命题对 𝑘−1k−1 (𝑘>1k>1) 时的情况成立,现在设 𝑓(𝑥)f(x) 有 𝑘k 个不同的解 𝑥1,𝑥2,…,𝑥𝑘x1​,x2​,…,xk​,则 𝑓(𝑥)≡(𝑥−𝑥1)ℎ(𝑥)(mod𝑝)f(x)≡(x−x1​)h(x)(modp),进而有 (∀𝑖=2,3,…,𝑘),0≡𝑓(𝑥𝑖)≡(𝑥𝑖−𝑥1)ℎ(𝑥𝑖)(mod𝑝)(∀i=2,3,…,k),0≡f(xi​)≡(xi​−x1​)h(xi​)(modp) 从而 ℎ(𝑥)h(x) 有 𝑘−1k−1 个不同的解 𝑥2,𝑥3,…,𝑥𝑘x2​,x3​,…,xk​,由归纳假设有 ℎ(𝑥)≡𝑔(𝑥)∏𝑖=2𝑘(𝑥−𝑥𝑖)(mod𝑝)h(x)≡g(x)∏i=2k​(x−xi​)(modp) 其中 deg⁡𝑔=𝑛−𝑘degg=n−k 且 [𝑥𝑛−𝑘]𝑔(𝑥)=𝑎𝑛[xn−k]g(x)=an​。

由此可得 𝑓(𝑥)≡𝑔(𝑥)∏𝑖=1𝑘(𝑥−𝑥𝑖)(mod𝑝)f(x)≡g(x)∏i=1k​(x−xi​)(modp),命题得证。

推论 1

对素数 𝑝p, (∀𝑥∈𝑍),𝑥𝑝−1−1≡∏𝑖=1𝑝−1(𝑥−𝑖)(mod𝑝)(∀x∈Z),xp−1−1≡∏i=1p−1​(x−i)(modp) (Wilson 定理)(𝑝−1)!≡−1(mod𝑝)(p−1)!≡−1(modp)

定理 3(Lagrange 定理)

方程 𝑓(𝑥)≡0(mod𝑝)f(x)≡0(modp) 至多有 𝑛n 个不同解。

证明

假设 𝑓(𝑥)f(x) 有 𝑛+1n+1 个不同的解 𝑥1,𝑥2,…,𝑥𝑛+1x1​,x2​,…,xn+1​,则由定理 2,对 𝑥1,𝑥2,…,𝑥𝑛x1​,x2​,…,xn​ 有 𝑓(𝑥)≡𝑎𝑛∏𝑖=1𝑛(𝑥−𝑥𝑖)(mod𝑝)f(x)≡an​∏i=1n​(x−xi​)(modp) 令 𝑥=𝑥𝑛+1x=xn+1​,则 0≡𝑓(𝑥𝑛+1)≡𝑎𝑛∏𝑖=1𝑛(𝑥𝑛+1−𝑥𝑖)(mod𝑝)0≡f(xn+1​)≡an​∏i=1n​(xn+1​−xi​)(modp) 而右侧显然不是 𝑝p 的倍数,因此假设矛盾。

高次同余方程的求解方法

我们可以借助中国剩余定理将求解同余方程组转为求解同余方程,以及将求解模合数 𝑚m 的同余方程转化为求解模素数幂次的同余方程。之后我们借助定理 1 将求解模素数幂次的同余方程转化为求解模素数的同余方程。

结合模素数同余方程的若干定理,我们只需考虑方程 𝑥𝑛+∑𝑖=0𝑛−1𝑎𝑖𝑥𝑖≡0(mod𝑝)xn+∑i=0n−1​ai​xi≡0(modp) 的求解,其中 𝑝p 是素数,𝑛<𝑝n<p。

我们可以通过将 𝑥x 代换为 𝑥−𝑎𝑛−1𝑛x−nan−1​​ 来消去 𝑥𝑛−1xn−1 项,从而只需考虑方程 𝑥𝑛+∑𝑖=0𝑛−2𝑎𝑖𝑥𝑖≡0(mod𝑝)xn+∑i=0n−2​ai​xi≡0(modp) 的求解,其中 𝑝p 是素数,𝑛<𝑝n<p。

  • 若 𝑛=1n=1,则求解方法参见线性同余方程。
  • 若 𝑛=2n=2,则求解方法参见二次剩余。
  • 若方程可以化为 𝑥𝑛≡𝑎(mod𝑝)xn≡a(modp),则求解方法参见 𝑘k 次剩余。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值