Excel VBA 数学教室ではアフィリエイトプログラムを利用して商品を紹介しています。

2項合同方程式が解をもつ条件

2項合同方程式が解をもつ条件①

今回は次のような2項合同方程
xna(modp)
を解いてみます。

【定理F4】p を素数、n を正整数、gp の原始根の1つとするとき
xna(modp)が解をもつための必要十分条件は
(n,p1)|Indg(a)であり、その個数は (n,p1) 個である。

[証明] xna の両辺の指数をとると
nIndg(x)Indg(a)(modp1)
これは Indg(x) についての1 元 1 次合同方程式なので
xna(modp)
が解をもつための必要十分条件は
(n,p1)|Indg(a)
であり、このとき (n,p1) 個の解をもちます。(証明終)

具体例で確認してみます。たとえば、
(1)x28(mod11)
という合同方程式は、両辺の指数をとると
2Ind2(x)Ind2(8)(mod10)
となるので、np1 の最大公約数は
(n,p1)=(2,10)=2
です。また、11 の原始根 2 の指数表

a=ge 1 2 3 4 5
e 0 1 8 2 4
a=ge 6 7 8 9 10
e 9 7 3 6 5
スクロールできます

を見ると Ind2(8)=3 なので、
(2,10)/Ind2(8)
となり、(1) は解をもたないことになります。それでは
(2)x29(modp)
の場合はどうでしょう。両辺の指数をとると
2Ind2(x)Ind2(9)(mod10)
指数表から Ind2(9)=6 なので
(3)2Ind2(x)6(mod10)
(n,p1)=(2,10)=2 なので
(2,10)|Ind2(9)
という条件を満たすので、(2) は 2 個の解をもつはずです。(3) の両辺を 2 で割ると、
(4)Ind2(x)3(mod5)
という合同方程式に帰着します。mod10 の解は
Ind2(x)3,8(mod10)
となります。指数表から対応する真数を探して
x8,3(mod11)
という解が得られます。検算してみると
82=649(mod11)32=99(mod11)
となって、確かに合同方程式を満たしていることがわかります。

2項合同方程式が解をもつ条件②

定理 F4 を原始根を使わずに表現する方法もあります。

【定理F5】p を素数、n を正整数とするとき、2 項合同方程式
xna(modp)が解をもつための必要十分条件は
ap1d1(modp) ただし、d=(n,p1)

[証明] 定理 F4 より、2 項合同方程式
xna(modp)
が解をもつための必要十分条件は
(n,p1)|Indg(a)
なので、
d|Indg(a)ap1d
を示せばよいことになります。まず d|Indg(a) が成り立っているとして、Indg(a)=kd(kZ) とおくと原始根の定義より
agkd(modp)
と表せます。d|p1 より (p1)/d は整数なので
ap1d(gkd)p1d=gk1=(gp1)k1(modp)
となります。今度は逆に
ap1d1(modp)
が成り立っているとすると、両辺の指数をとって
p1dIndg(a)0(modp)
d=(n,p1) なので p1=d(kZ) とおけて
lIndg(a)0(modp)
すなわち
Indg(a)0(modp)
なので、d|Indg(a) が成立します。(証明終)

[定理F5] であれば指数表を用いる必要がないので、電卓さえあれば解の有無をすぐに調べることができます。先ほどの合同方程式
(1)x28(mod11)
に解が存在するかどうかを [定理F5] で調べてみます。
p1d=10(2,10)=5
となるので
ap1d=85=3276810(mod11)
ap1d1 なので解はありません。
(2)x29(mod11)
の場合は
ap1d=9102=95=590491(mod11)
となるので、この合同方程式には 2 つの解が存在することになります。

≫ 平方剰余 ≫ 整数論入門講座

エクセルや数学に関するコメントをお寄せください