情報数学1 第1-3章 - Tominaga Lab, Chausson

情報数学1 第2-2章
合同式の逆元と応用
香川大学工学部 富永浩之
[email protected]
第01節 [1] 合同式における逆元の定義
法nにおいて、a×b≡1 となるとき、
bはaの逆元といい、a~ と書く。
aとbが互いに逆元であることは a⇔b と書く。
任意の法nにおいて 1×1≡1 より 1~≡1
逆元は必ずしも存在するとは限らない
任意の法nにおいて 0×□≡0 なので、0に逆元は存在しない
法
法
法
法
法
3
4
4
5
5
で
で
で
で
で
2×2≡1 より 2~≡2
2×2≡0, 2×3≡2 より、2 の逆元は存在しない
3×3≡1 より 3~≡3
2×3≡1 より 2~≡3 また 3~≡2
4×4≡1 より 4~≡4
第01節 [2] 逆元の存在条件と零因子
● 逆元の存在条件
a⊥n のとき
法nにおけるaの逆元が存在する
このようなaを可逆元という
a⊥n でないとき
法nにおけるaの逆元は存在しない
a×b≡0 となる、0でないbが存在
このようなaを零因子という
● 逆元と零因子
法nが素数のとき、1~n-1 の全てが、可逆元
法nが合成数のとき、a⊥n のとき、可逆元
a⊥n でないとき、零因子
第01節 [3] 逆元の一覧
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
4
5
2
3
4
3
2
5
3
5
6
7
7
7
4
9
5
8
3
10
5
3
5
2
9
5
8
3
4
11
7
8
9
10
11
12
13
14
15
例えば、法11の行を横に見ると、
1×1≡2×6≡3×4≡5×9≡7×8≡10×10≡1
4
2
6
13
6
2
11
7
4
3
8
7
2
13
7
8
7
5
9
5
3
11
2
9
10
4
11
6
9
11
3
12
13
7
5
14
15
第02節 [1] 逆元の性質
任意の法 n で、1 の逆元は 1
任意の法 n で、n-1 の逆元は n-1
法 n で、a の逆元が b ならば、-a の逆元は -b
法 2m+1 で、2 の逆元は -m≡m+1 で、m の逆元は -2≡2m-1
法 3m+1 で、3 の逆元は -m で、+m の逆元は -3≡3m-2
法 3m-1 で、3 の逆元は +m で、-m の逆元は -3≡3m-4
法 4m で、2m+1 の逆元は 2m+1 で、2m-1 の逆元は 2m-1
法 35 で、34 の逆元は 34
法 123 で、2 の逆元は 62 で、61 の逆元は -2≡121
法 451 で、3 の逆元は -150≡301 で、150 の逆元は -3≡448
法 449 で、3 の逆元は 150 で、-150≡299 の逆元は -3≡446
第02節 [2] 逆元を求める素朴な方法
法 n において、a の逆元を求めるとき、まず [0] を確認し、
逆元が存在するなら、[1] または [2] の方法を用いる。
[0] 法 n とa が互いに素でなければ、逆元は存在しない。
[1] a の倍数列を列挙し、n による剰余が1になるものを探す。
実際には、a の倍数列は、法 n で考えればよい。
[2] n の倍数列を列挙し、それに 1 を加えて
a で割り切れるものを探す。(a<n なら、こちらの方が効率的)
法19で8の逆元
[1] 8×2≡16, 8×3≡5, 8×4≡13, 8×5≡2, 8×6≡10, 8×7≡18,
8×8≡7, 8×9≡15, 8×10≡4, 8×11≡12, 8×12≡1 より 8~≡12
[2] 19の倍数+1 で考えると、1, 20, 39, 58, 77, 96 で
96%8=0, 96@8=12 で 8~≡12
第02節 [3] 互いに逆元となる組の見つけ方
ある法 n において、逆元となる2数の組を見つけるには、
a×b≡1 を満たす2数の組を考えればよい。
ここで、 a×b≡1 のとき、整数パラメタ t を用いて、
a×b=1+nt と表せる。
したがって、 n の倍数列に 1 を足した ±n+1, ±2n+1, ‥ を考え、
積の形で表せば、逆元の組を見つけたことになる。
例えば、法 67 において、 1≡67+1≡68≡4×17≡2×34 より、
4 ⇔ 17, 2 ⇔ 34 が見つかる。
また、 1≡-(-4)×(-17)≡63×50 , 1≡(-2)×(-34)≡65×33 に着目すれば、
63 ⇔ 50, 65 ⇔ 33 も見つけることができる。
さらに、 -1≡-67+1≡-66≡3×(-22)≡3×35≡(-3)×22≡64×22 より、
3 ⇔ 45, 64 ⇔ 22 が見つかる。
第02節 [3] 逆元の一覧
法22で逆元の一覧を求める。
22は合成数であり、2と11を素因数に持つ。
0は逆元を持たず、零因子でもない。
0以外で、素因数の倍数である 2,4,6,8,10,11,12,14,16,18,20 は
22と互いに素でないから、零因子であり、逆元が存在しない。
したがって、残りの 1,3,5,7,9,13,15,17,19,21 の10個について
逆元を求めればよい。
まず、1 ⇔ 1, 21 ⇔ 21 は明らかである。
22×1+1=23 は素数であるから積の形に表せず、使えない。
22×(-1)+1=-21=(-3)×7=3×(-7) より、19 ⇔ 7, 3 ⇔ 15 が見つかる。
22×2+1=45=3×15=9×5=(-9)×(-5) より、
新たに 9 ⇔ 5, 13 ⇔ 17 が見つかる。
以上で、全ての場合が尽くされている。
第03節 [1] 素因数分解による逆元の求値
a または n-a を素因数分解して、各因数の逆元の積を求める。
逆元の指数法則 (-a)~≡-(a~) と (ab)~≡(a~)(b~) を用いる。
法39で29の逆元
29≡-10 で 10×4≡1 より 10~≡4 で 29~≡(-10)~≡-(10~)≡-4≡35
法26で15の逆元
15≡3×5 で 3×9≡1, 5×5≡-1 より 3~≡9, 5≡-5
よって 15~≡(3~)×(5~)≡9×(-5)≡7
法67で59の逆元
59≡-8≡-(2^3) で 2×34≡1 より 2~≡34≡2×17
よって 59~≡-(8~)≡-(34^3)≡-2×2×2×17×17×17≡-2×17×17≡19
第03節 [2] 倍数列の剰余値による逆元の求値
a の倍数列を組み合わせて、剰余値 1 を作り出す。
法26で11の逆元
11×1≡11≡-15 ‥ ①, 11×2≡22≡-4 ‥ ②
ここで ①×(-1)+②×(-3) を考えると (11)×(-1)+(-4)×(-3)≡1
すなわち 11×{(1)×(-1)+(2)×(-3)}≡11×(-7)≡1 より 11~≡-7≡19
法73で47の逆元
47×1≡47≡-26 ‥ ①, 47×2≡21≡-52 ‥ ②, 47×3≡68≡-5 ‥ ③
ここで ①×(-1)+③×(5) を考えると (-26)×(-1)+(-5)×(5)≡1
すなわち 47×{(1)×(-1)+(3)×(5)}≡47×14≡1 より 47~≡14
第03節 [3] 不定方程式による逆元の求値
合同式の逆元の定義を、整数パラメタを使った除法等式で記述し、
ユークリッドの不定方程式に帰着させる。
目の子によらない機械的な手順で、効率的な算法である。
法47で34の逆元
法47で34の逆元を x とすると 34x≡1 ; mod 47
整数パラメタ t を用いた除法等式で 34x=1+47t
これより、ユークリッドの不定方程式 34x-47t=1
34x-47t=34(x-t)-13t で y=x-t とおき 34y-13t=1
34y-13t=13(3y-t)-5y で s=3y-t とおき 13s-5y=1
13s-5y=5(3s-y)-2s で z=3s-y とおき 5z-2s=1
ここで、具体解 z=1, s=2 を得る。
これから逆算し、y=3s-z=5, t=3y-s=13, x=y+t=18 で 34~≡18
第04節 [3] 複合同式と中国剰余問題
中国古代の書物「孫子算経」に、以下のような問題と解法が載っている。
「3で割ると2余り、5で割ると3余り、7で割ると2余る数は何か」
これは、複数の除数に対する剰余から元の整数を求める問題である。
これが西洋に伝わり、中国剰余問題と呼ばれるようになった。
異なる法による合同式として立式されるので、複合同式ともいう。
a で割ると r 余り、b で割ると s 余る数 n
n≡r ; mod a, n≡s ; mod b
複合同式において、法 a,b が互いに素のとき、
解 n が、0~ab-1 の範囲に必ず1つ存在する。
別の言い方をすれば、法 ab で、一意に定まる。
上記の問題では、3個の法 3,5,7 に関する問題であるが、互いに素で、
3×5×7=105 であり、105 未満の自然数に解が存在する。
そのため、江戸時代の日本の書物では、百五減算として紹介されていた。
第04節 [4] 複合同式の逆元による解法
複合同式は、法 a,b が互いに素の場合、古来より、
互いの逆元を求めて組み合わせる解法が知られている。
解 n は、0~ab-1 の範囲で、あるいは法 ab で、一意に定まる。
a⊥b で n≡r ; mod a, n≡s ; mod b
n=ax+by とおくと、n≡by≡r ; mod a, n≡ax≡s ; mod b
これから y≡rb~ ; mod a, x≡sa~ ; mod b
よって n≡a(sa~)+b(rb~) ; mod ab
11で割って3余り、13で割って6余る整数 n
題意より n≡3 ; mod 11, n≡6 ; mod 13
n=11a+13b とおく。
このとき n≡13b≡2b≡3 ; mod 11, n≡11a≡-2a≡6 ; mod 13
これから b≡3×2~≡3×6≡7, a≡6×(-2)~≡6×6≡10
よって n=11×10+13×7=201
実際には n≡201≡58 ; mod 143
すなわち、一般解は n=58+143t ; tは整数パラメタ
第04節 [5] 複合同式の拡張互除法による解法
実際には、複合同式は、ユークリッドの不定方程式に帰着させ、
拡張互除法で解く方が効率的である。
この解法は、法が互いに素でない場合でも通用する。
ただし、解が存在しない場合がある。
11で割って3余り、13で割って6余る、最小の自然数
題意より n≡3 ; mod 11, n≡6 ; mod 13
除法等式で n=3+11x, n=6+13y から
ユークリッドの不定方程式 11x-13y=3
具体解 x=5, y=4 から、一般解 x=5+13t, y=4+13t
よって n=3+11(5+13t)=58+143t ; t は整数パラメタ
nは自然数であるから n≧0 で t≧0
最小性より t=0 で n=58
第04節 [6] 中国剰余定理
複合同式すなわち中国剰余問題の解の存在性は、以下の通りである。
これを中国剰余定理と呼ぶ。非常に重要な定理である。
複合同式 n≡r ; mod a, n≡s ; mod b において、
a⊥b のとき、以下の解法により、法 ab で唯一の解が存在する。
n=ax+by とおくと、n≡by≡r ; mod a, n≡ax≡s ; mod b
これから y≡rb~ ; mod a, x≡sa~ ; mod b
よって n≡a(sa~)+b(rb~) ; mod ab
a⊥b でないとき、剰余の差 c=r-s が d=gcd(a,b) で割り切れれば、
法 lcm(a,b)=ab/d で唯一の解が存在する。
解法は、余因数 a'=a/d, b'=b/d を考え、
n≡r≡r' ; mod a', n≡s≡s' ; mod b' に帰着させる。
割り切れないとき、解は存在しない。