模为合数的高次同余方程的解法 - icst.pku.edu.cn ·...
TRANSCRIPT
模为合数的高次同余方程的解法
上一节讨论模为素数的高次同余方程的解法, 本节继续讨
论模为合数的高次同余方程的解法, 其基本思想是利用下
述定理将合数模转化为素数模来处理.
定理2.7.1 设𝑚1, 𝑚2, … ,𝑚𝑘是𝑘个两两互素的正整数,
𝑚 = 𝑚1𝑚2…𝑚𝑘 , 𝑓(𝑥) = 𝑎𝑛𝑥𝑛 + 𝑎𝑛−1𝑥
𝑛−1 +⋯+ 𝑎1𝑥 + 𝑎0 ,
则方程𝑓(𝑥) ≡ 0(𝑚𝑜𝑑 𝑚)有解的充要条件是同余方程组:
𝑓 𝑥 ≡ 0 𝑚𝑜𝑑 𝑚1 , 𝑓 𝑥 ≡ 0 𝑚𝑜𝑑 𝑚2 , … , 𝑓(𝑥) ≡ 0(𝑚𝑜𝑑 𝑚𝑘)
有解. 如果𝑓(𝑥) ≡ 0(𝑚𝑜𝑑 𝑚𝑖)有𝑛𝑖个解(𝑖 = 1,2,… , 𝑘), 那么
方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)有 𝑛𝑖𝑘𝑖=1 个解.
2 共18
模为合数的高次同余方程的解法 证明: 先证必要性. 如果𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)有解, 不妨设为𝑥0,
则有𝑓(𝑥0) ≡ 0 (𝑚𝑜𝑑 𝑚), 即𝑚|𝑓(𝑥0).
又因为𝑚 = 𝑚1𝑚2…𝑚𝑘, 所以𝑚𝑖|𝑓(𝑥0) (𝑖 = 1,2, … , 𝑘), 即得:
𝑓 𝑥0 ≡ 0 𝑚𝑜𝑑 𝑚1 , 𝑓 𝑥0 ≡ 0 𝑚𝑜𝑑 𝑚2 , … , 𝑓(𝑥0) ≡ 0(𝑚𝑜𝑑 𝑚𝑘)
故同余方程组有解. 必要性成立.
再证充分性. 如果同余方程组有解, 不妨设为𝑥0,
则 𝑓 𝑥0 ≡ 0 𝑚𝑜𝑑 𝑚1 , 𝑓 𝑥0 ≡ 0 𝑚𝑜𝑑 𝑚2 , … , 𝑓(𝑥0) ≡ 0(𝑚𝑜𝑑 𝑚𝑘)
故𝑓(𝑥0) ≡ 0 (𝑚𝑜𝑑 [𝑚1, 𝑚2, … ,𝑚𝑘]).
又因为𝑚1, 𝑚2 , … ,𝑚𝑘两两互素, 所以[𝑚1, 𝑚2, … ,𝑚𝑘] = 𝑚.
故𝑓(𝑥0) ≡ 0 (𝑚𝑜𝑑 𝑚), 即𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)有解. 充分性成立.
下面是对后半部分解的个数的证明. 3
共18
模为合数的高次同余方程的解法 证明: 设𝑓(𝑥) ≡ 0 𝑚𝑜𝑑 𝑚𝑖 (𝑖 = 1,2, … , 𝑘)的𝑛𝑖个不同解为
𝑥 ≡ 𝑥𝑖1(𝑚𝑜𝑑 𝑚𝑖), 𝑥 ≡ 𝑥𝑖2(𝑚𝑜𝑑 𝑚𝑖), … , 𝑥 ≡ 𝑥𝑖𝑛𝑖(𝑚𝑜𝑑 𝑚𝑖)
当𝑖的值取遍1,2, … , 𝑘时, 对其中任意一个组合
𝑥 ≡ 𝑥1𝑗1(𝑚𝑜𝑑 𝑚1), 𝑥 ≡ 𝑥2𝑗2(𝑚𝑜𝑑 𝑚2), … , 𝑥 ≡ 𝑥𝑘𝑗𝑘(𝑚𝑜𝑑 𝑚𝑘) (式1)
由中国剩余定理得知, 该方程组有唯一解𝑥 = 𝑥0 (𝑚𝑜𝑑 𝑚),
显然它是方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)的解, 𝒙𝟏𝒋𝟏 , 𝒙𝟐𝒋𝟐 , ⋯ , 𝒙𝒌𝒋𝒌不同取法可得该方程不同解.
由于𝑥1𝑗1 , 𝑥2𝑗2 , ⋯ , 𝑥𝑘𝑗𝑘的取法有 𝑛𝑖𝑘𝑖=1 种, 所以该方程至少有 𝑛𝑖
𝑘𝑖=1 个解.
反之, 设𝑥 = 𝑥0 (𝑚𝑜𝑑 𝑚)是方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)的任一解
即𝑓(𝑥0) ≡ 0 (𝑚𝑜𝑑 𝑚), 则必有𝑓(𝑥0) ≡ 0 𝑚𝑜𝑑 𝑚𝑖 (𝑖 = 1,2, … , 𝑘)
故𝑥0应与𝑓(𝑥) ≡ 0 𝑚𝑜𝑑 𝑚𝑖 的𝑛𝑖个解中的某个解关于模 𝑚𝑖同余,
也即存在一组𝑥1𝑗1 , 𝑥2𝑗2 , ⋯ , 𝑥𝑘𝑗𝑘 , 使得𝑥0满足(式1)的方程组,
这表明方程𝒇(𝒙) ≡ 𝟎 (𝒎𝒐𝒅 𝒎)的每个解都产生于某个形如(式1)的同余方程组.
故方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)的解的个数不大于 𝑛𝑖𝑘𝑖=1 .
综上,方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)有 𝑛𝑖𝑘𝑖=1 个解.
4 共18
模为合数的高次同余方程的解法 例2.7.1 求平方与自身的最后三位数字(不足补0)相同的所
有整数.
解: 由题意, 只需求解同余方程𝑥2 ≡ 𝑥 (𝑚𝑜𝑑 1000)即可.
因为1000 = 103 = 2353, 所以由定理2.7.1知,
可以先分别求解方程𝑥2 ≡ 𝑥 (𝑚𝑜𝑑 23)和𝑥2 ≡ 𝑥 (𝑚𝑜𝑑 53).
前者的解为: 𝑥 ≡ 0, 1 (𝑚𝑜𝑑 23), 后者的解为: 𝑥 ≡ 0, 1 𝑚𝑜𝑑 53 ,
它们产生4个不同的同余方程组:
𝑥 ≡ 0 (𝑚𝑜𝑑 23)
𝑥 ≡ 0 (𝑚𝑜𝑑 53), 𝑥 ≡ 1 (𝑚𝑜𝑑 23)
𝑥 ≡ 1 (𝑚𝑜𝑑 53), 𝑥 ≡ 0 (𝑚𝑜𝑑 23)
𝑥 ≡ 1 (𝑚𝑜𝑑 53), 𝑥 ≡ 1 (𝑚𝑜𝑑 23)
𝑥 ≡ 0 (𝑚𝑜𝑑 53),
由中国剩余定理可求得𝑥 ≡ 0, 1, 376, 625 (𝑚𝑜𝑑 1000).
5 共18
模为合数的高次同余方程的解法 一般地, 由定理2.7.1及其证明过程可知, 如果𝑚的标准分解为
𝑚 = 𝑝1𝛼1𝑝2
𝛼2 ⋯𝑝𝑘𝛼𝑘, 那么求解模为合数的高次同余方程
𝑓(𝑥) = 𝑎𝑛𝑥𝑛 + 𝑎𝑛−1𝑥
𝑛−1 +⋯+ 𝑎1𝑥 + 𝑎0 ≡ 0 (𝑚𝑜𝑑 𝑚)
转化为先解方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝑖𝛼𝑖), 𝑖 = 1,2,… , 𝑘,
再利用中国剩余定理求解这些解的组合构成的同余方程组.
因此, 求解模为合数的同余方程的关键是
求解形如𝒇(𝒙) ≡ 𝟎 (𝒎𝒐𝒅 𝒑𝜶)的同余方程, 这里𝑝是素数.
我们已经在上节讨论了𝛼 = 1的情形, 即模为素数的高次同余
方程. 下面我们主要关心𝛼 ≥ 2的情形.
6 共18
模为素幂的高次同余方程的解法 我们先比较同余方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼)与同余方程
𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)的解, 这里𝛼 ≥ 1.显然后者的解一定
是前者的解, 但是反过来未必成立, 即前者的解不一定都是
后者的解.
例如, 当𝑓(𝑥) = 𝑥, 𝑝 = 2, 𝛼 = 1时, 2是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 2)的
解, 但2不是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 22)的解.
尽管如此, 我们仍旧可以在方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼)的解中
寻找方程 𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)的解. 我们说前者的解
𝑥 ≡ 𝑥0 (𝑚𝑜𝑑 𝑝𝛼)给出后者的一个解, 即是说存在整数𝑘使
得𝑥 = 𝑥0 + 𝑘𝑝𝛼(𝑚𝑜𝑑 𝑝𝛼+1)是方程 𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)
的解. 7 共18
模为素幂的高次同余方程的解法
下面先看当𝛼 = 1时, 如何在方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼)的
解中寻找方程 𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)的解.
设𝑥 ≡ 𝑥0 (𝑚𝑜𝑑 𝑝)是方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝)的解, 如果它
能给出𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝2)的一个解, 那么即是说存在整
数𝑘使得𝑥 ≡ 𝑥0 + 𝑘𝑝 (𝑚𝑜𝑑 𝑝2)是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝2)的解.
因此, 对于𝒇(𝒙) ≡ 𝟎 (𝒎𝒐𝒅 𝒑)的解𝒙𝟎, 只要求出对应的𝒌
即可. 如果这样的𝑘不存在, 那么表明𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝)的
解𝑥0 不能给出𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝2)的解.
8 共18
模为素幂的高次同余方程的解法 对于𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝)的解𝑥0, 我们采用如下方法求𝑘使得
𝑥 ≡ 𝑥0 + 𝑘𝑝 (𝑚𝑜𝑑 𝑝2)是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝2)的解.
令𝑓′ 𝑥 = 𝑛𝑎𝑛𝑥𝑛−1 + 𝑛 − 1 𝑎𝑛−1𝑥
𝑛−2 +⋯+ 𝑎1, 则有
𝑓(𝑥 + 𝑦) = 𝑓(𝑥) + 𝑦𝑓′ 𝑥 + 𝑦2𝑔(𝑥, 𝑦) (代入展开即可)
其中𝑔(𝑥, 𝑦)是关于𝑥, 𝑦的某个整系数多项式. 于是
𝑓(𝑥0 + 𝑘𝑝) = 𝑓(𝑥0) + 𝑘𝑝𝑓′(𝑥0) + 𝑘2𝑝2𝑔(𝑥0, 𝑘𝑝)
≡ 𝑓(𝑥0) + 𝑘𝑝𝑓′(𝑥0) (𝑚𝑜𝑑 𝑝2)
因为𝑓(𝑥0) ≡ 0 (𝑚𝑜𝑑 𝑝)且𝑓(𝑥0 + 𝑘𝑝) ≡ 0 (𝑚𝑜𝑑 𝑝2), 所以
𝑘𝑓′(𝑥0) ≡ −𝑓(𝑥0)/𝑝 (𝑚𝑜𝑑 𝑝)
解该一元一次同余方程求出𝑘, 便可得𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝2)的解. 9
共18
模为素幂的高次同余方程的解法 利用处理𝛼 = 1 情形的同样思想, 可对任意𝛼 (𝛼 ≥ 1)在𝑓(𝑥) ≡
0 (𝑚𝑜𝑑 𝑝𝛼)的解中寻找𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)的解.
定理2.7.2 设𝑓(𝑥) = 𝑎𝑛𝑥𝑛 + 𝑎𝑛−1𝑥
𝑛−1 +⋯+ 𝑎1𝑥 + 𝑎0,
𝑓′ 𝑥 = 𝑛𝑎𝑛𝑥𝑛−1 + 𝑛 − 1 𝑎𝑛−1𝑥
𝑛−2 +⋯+ 𝑎1, 𝑥0是𝑓(𝑥) ≡
0 (𝑚𝑜𝑑 𝑝𝛼)的一个解.
(1) 若𝑝 ∤ 𝑓′(𝑥0), 则𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)恰有1个解𝑥 ≡ 𝑥0 +
𝑘𝑝𝛼(𝑚𝑜𝑑 𝑝𝛼+1), 其中𝑘是𝑘𝑓′(𝑥0) ≡ −𝑓 𝑥
0
𝑝𝛼 (𝑚𝑜𝑑 𝑝)的唯一解.
(2) 若𝑝|𝑓′(𝑥0), 𝑝𝛼+1|𝑓(𝑥0), 则𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)有𝑝个解
𝑥 ≡ 𝑥0 + 𝑘𝑝𝛼(𝑚𝑜𝑑 𝑝𝛼+1), 𝑘 = 0, 1, … , 𝑝 − 1.
(3) 若𝑝|𝑓′(𝑥0), 𝑝𝛼+1 ∤ 𝑓(𝑥0), 则𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)无解.
10 共18
模为素幂的高次同余方程的解法 证明: 由题设, 𝑥0是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼)的解,
于是所有𝑥0 + 𝑘𝑝𝛼(𝑘 ∈ ℤ)都满足同余方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼).
假设存在𝑘使得𝑥 ≡ 𝑥0 + 𝑘𝑝𝛼(𝑚𝑜𝑑 𝑝𝛼+1)是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)
的解, 即𝑓(𝑥0 + 𝑘𝑝𝛼) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1), 则有
𝑓(𝑥0 + 𝑘𝑝𝛼) = 𝑓(𝑥0) + 𝑘𝑝𝛼𝑓′(𝑥0) + 𝑘2𝑝2𝛼𝑔(𝑥0, 𝑘𝑝𝛼)
≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)
由于𝑝𝛼+1|𝑘2𝑝2𝛼, 故𝑓(𝑥0) + 𝑘𝑝𝛼𝑓′(𝑥0) ≡ 0(𝑚𝑜𝑑 𝑝𝛼+1), 即:
𝒑𝜶𝒇′(𝒙𝟎)𝒌 ≡ −𝒇(𝒙𝟎)(𝒎𝒐𝒅 𝒑𝜶+𝟏)
进而将求解高次同余方程的问题转化为求解一次同余方程.
下面将分三种情况对上述一次同余方程的解进行讨论:
𝟏 𝑝 ∤ 𝑓′ 𝑥0 ; 𝟐 𝑝 𝑓′ 𝑥0 , 𝑝𝛼+1 𝑓 𝑥0 ; 𝟑 𝑝|𝑓′(𝑥0),𝑝𝛼+1 ∤ 𝑓(𝑥0)
11 共18
模为素幂的高次同余方程的解法 证明: (1) 若𝑝 ∤ 𝑓′(𝑥0),
则上述一次同余方程等价为: 𝑓′ 𝑥0 𝑘 ≡ −𝑓 𝑥
0
𝑝𝛼 (𝑚𝑜𝑑 𝑝),
因此有唯一解𝑘 ≡ 𝑘0(𝑚𝑜𝑑 𝑝), 即𝑘 = 𝑘0 + 𝑙𝑝 (𝑙为整数).
代入𝑥0 + 𝑘𝑝𝛼 ≡ 𝑥0 + 𝑘0𝑝𝛼 + 𝑙𝑝𝛼+1 ≡ 𝑥0 + 𝑘0𝑝
𝛼(𝑚𝑜𝑑 𝑝𝛼+1), 得证.
(2) 若𝑝|𝑓′(𝑥0), 𝑝𝛼+1|𝑓(𝑥0),
则上述一次同余方程仍可等价为: 𝑓′(𝑥0)𝑘 ≡ −𝑓 𝑥
0
𝑝𝛼 (𝑚𝑜𝑑 𝑝).
显然任意整数𝑘都是后面方程的解,
所以𝑥0 + 𝑘𝑝𝛼 (𝑘为整数)都是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)的解.
易知, 这些解关于模𝑝𝛼+1共有𝑝个, 分别由𝑘 = 0, 1, … , 𝑝 − 1给出, 得证.
(3) 若𝑝|𝑓′(𝑥0), 𝑝𝛼+1 ∤ 𝑓(𝑥0), 则𝑝𝛼𝑓′(𝑥0)𝑘 ≡ 0 ≢ −𝑓(𝑥0)(𝑚𝑜𝑑 𝑝𝛼+1),
故前述一次同余方程无解, 也即𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)无解, 得证.
12 共18
模为素幂的高次同余方程的解法
例2.7.2 解同余方程𝑥3 + 8𝑥2 − 𝑥 − 1 ≡ 0 (𝑚𝑜𝑑 112).
解: 令𝑓(𝑥) = 𝑥3 + 8𝑥2 − 𝑥 − 1, 则𝑓′(𝑥) = 3𝑥2 + 16𝑥 − 1.
解方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 11), 可得𝑥0 ≡ 4, 5 (𝑚𝑜𝑑 11).
(1) 当𝑥0 ≡ 4 (𝑚𝑜𝑑 11)时, 𝑓(4) = 187,𝑓′(4) = 111 ≡ 1 (𝑚𝑜𝑑 11).
因为𝑝 = 11 ∤ 𝑓′(4),
所以由定理2.7.2知, 𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 112)有唯一解
𝑥 ≡ 𝑥0 + 𝑘𝑝 = 4 + 11𝑘 (𝑚𝑜𝑑 112),
其中𝑘是𝑓′(4)𝑘 ≡ −𝑓(4)/11 (𝑚𝑜𝑑 11)的唯一解,
即𝑘 ≡ −187/11 ≡ 5 (𝑚𝑜𝑑 11).
故𝑥 ≡ 4 + 11 × 5 = 59 (𝑚𝑜𝑑 112)是𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 112)的一个解.
(2) 当𝑥0 ≡ 5 (𝑚𝑜𝑑 11)时, 𝑓(5) = 319, 𝑓′(5) = 154.
因为𝑝 = 11|𝑓′(5), 但112 ∤ 𝑓(5),
所以𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 112)没有解𝑥满足𝑥 ≡ 5 (𝑚𝑜𝑑 11). 13 共18
总结 定理2.7.1 设𝑚1, 𝑚2, … ,𝑚𝑘是𝑘个两两互素的正整数,
𝑚 = 𝑚1𝑚2…𝑚𝑘 , 𝑓(𝑥) = 𝑎𝑛𝑥𝑛 + 𝑎𝑛−1𝑥
𝑛−1 +⋯+ 𝑎1𝑥 + 𝑎0 ,
则方程𝑓(𝑥) ≡ 0(𝑚𝑜𝑑 𝑚)有解的充要条件是同余方程组:
𝑓 𝑥 ≡ 0 𝑚𝑜𝑑 𝑚1 , 𝑓 𝑥 ≡ 0 𝑚𝑜𝑑 𝑚2 , … , 𝑓(𝑥) ≡ 0(𝑚𝑜𝑑 𝑚𝑘)
有解. 如果𝑓(𝑥) ≡ 0(𝑚𝑜𝑑 𝑚𝑖)有𝑛𝑖个解(𝑖 = 1,2,… , 𝑘), 那么
方程𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑚)有 𝑛𝑖𝑘𝑖=1 个解.
14 共18
总结
15
定理2.7.2 设𝑓(𝑥) = 𝑎𝑛𝑥𝑛 + 𝑎𝑛−1𝑥
𝑛−1 +⋯+ 𝑎1𝑥 + 𝑎0,
𝑓′ 𝑥 = 𝑛𝑎𝑛𝑥𝑛−1 + 𝑛 − 1 𝑎𝑛−1𝑥
𝑛−2 +⋯+ 𝑎1, 𝑥0是
𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼)的一个解.
(1) 若𝑝 ∤ 𝑓′(𝑥0), 则𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)恰有1个解
𝑥 ≡ 𝑥0 + 𝑘𝑝𝛼(𝑚𝑜𝑑 𝑝𝛼+1), 其中𝑘是
𝑘𝑓′(𝑥0) ≡ −𝑓 𝑥
0
𝑝𝛼 (𝑚𝑜𝑑 𝑝)的唯一解.
(2) 若𝑝|𝑓′(𝑥0), 𝑝𝛼+1|𝑓(𝑥0), 则𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)有𝑝个解
𝑥 ≡ 𝑥0 + 𝑘𝑝𝛼(𝑚𝑜𝑑 𝑝𝛼+1), 𝑘 = 0, 1,… , 𝑝 − 1.
(3) 若𝑝|𝑓′(𝑥0), 𝑝𝛼+1 ∤ 𝑓(𝑥0), 则𝑓(𝑥) ≡ 0 (𝑚𝑜𝑑 𝑝𝛼+1)无解.
共18