Cubic Residue
and
Cubic Root Modulo p
東京都立大学 理学部 数学科
藤代 武人
1
卒業研究のテーマ
前期のゼミでは
「平方剰余・mod pでの平方根」
について学びました.
そこで・・・
「立方剰余はどう計算する?」
「 mod pでの立方根はどう計算する?」
以上の事を中心に後期では研究をしました.
2
本日の内容
Cubic Residue (立方剰余)
Cubic Root (立方根)
3
Cubic Residue…?
定義 [ (rational) 立方剰余 ]
a Z , p P(prime) が与えられたとき ,
x 3 a (mod p )
をみたす x Z p が
C ubic Residue
存在する a は mod p で
存在しない a は mod p で C ubic non Residue
4
疑問…
平方剰余と同様のことはできるだろうか?
剰余記号
相互法則 (補充法則)
ヤコビ記号
アルゴリズム
5
立方剰余記号
定義 [立方剰余記号]
Z [ ] {a b | a, b Z }
( (1 3 ) / 2) 上で定義をする .
N ( ) 3, | ( N ( ) 1) / 3 (mod )
3
( N :norm)
このとき ,
C ubic Residue
1
2
,
C ubic non Residue
3
( Z [ ], : Z [ ] 上での素元 )
6
立方剰余記号について
平方剰余記号の場合と同様のことが言える.
multiplicity
3 3 3
generalize
(ヤコビ記号)
t
i Z のとき ,
mi
i 1
modularity
(mod ) のとき ,
3 3
t
mi
とする .
3 i 1 i 3
(右辺は剰余記号 )
7
立方剰余の相互法則
以下, mod3 で 1 と合同な数を primaryと呼ぶ .
, : primary, N ( ) 3,
N ( ) N ( )
3 3
これらの法則は,
剰余記号を計算する
上で重要な役割を
果たすことになる.
(補充法則)
1 3(m n ), m, n Z (primary) とする .
π :primaryprime
1
m
(1)
3
1
(3) 1
(2) ( m n )
3
8
Algorithmのポイント
剰余記号は,先程の相互法則・補充法則
を繰り返し用いて計算する.
(互除法のアルゴリズムと似ている.)
今回紹介するものの他にも立方剰余を求める
アルゴリズムはある.
有理数を扱う場合には注意が必要なので,
次で触れることにする.
9
α:有理整数, β:有理素数の場合
β = 2 (mod 3) の有理素数の場合
⇒ Z [ω] 上においても,
β は素元となっているのでそのまま計算できる.
β = 1 (mod 3) の素数の場合
⇒ ( Z [ ], prime) と分解できる .
とできるので ,
3 3 3 3
の方を考える .
3
10
Algorithm (Cubic Residue)[1/2]
[input] , Z [ ] \ 0 ( : not divisible1 )
[output]
3
[step1]
α:有理整数,
β:有理素数(mod 3 で1)の場合,β=ππとな
るπを求めβとする.
(これはcornacchiaのアルゴリズム[HP参
照]を利用して計算する.)
, Z [ ] s.t.
( )i (1 ) j , ( )i
1
1
2
[step2]
m, n Z s.t. 1 (3m n )
t m j1 (m n)i1 (mod3), ,
[step3]
~
~
if N ( ) N ( ) then
, を入れ替え
11
Algorithm (Cubic Residue)[2/2]
[step4]
while do
Z [ ] s.t ( )i (1 ) j
m, n Z s.t 1 (3m n )
t t m j (m n)i (mod3),
~
~
if N ( ) N ( ) then
, を入れ替え
[step5]
if 1 then
c0
else
c t
12
Cubic Root…?
mod p で3乗根が存在するかどうかは,
確かめることができた.
実際に,根は何になるのか?
どのように求める?
mod p での平方根を求めるアルゴリズムを
3乗根へ拡張する!!
13
Algorithmのポイント [1/2]
入力に関して
a Z , p( 3e q 1) P (prime) の入力に対して,
以下の場合を考える .
・p 2 ,p 3
xa
・p 2 (mod3) x a
解はひとつに定まる
( 2 p 1)
3
(mod p )
・p 1 (mod3) ・・・
解は3つある
p 1 (mod3) のときの
解を求めるアルゴリズ ムを示す.
14
Algorithmのポイント [2/2]
a が C ubic Residue ならば ,
p 3e q 1 (q 0 (mod3)) に対し ,
G g を Z p の 3 - Sylow部分群とすると ,
q 1 (mod3) のとき ,
q 2 (mod3) のとき ,
3
3
a a
( 2 q 1)
a a
3
gk
3
gk
( q 1)
となる k が 0 k 3e の範囲で存在する .
という事を用いる .
具体的にはこの「g」と「k」を求めていくアルゴリズムである.
15
Algorithm (Cubic Root) [1/2]
[input] p( 3e q 1 : (q 0 (mod3)) P (prime), a Z
[output] x Z p s.t. x 3 a (mod p ) or "no cubic root"
h
[step1] h Z p s.t. 1 (mod p)
p 3
をランダムに選択する
h
[step2] g h , sym bol , y g , r e
p 3
q
a 3 (if q 2 (mod3))
x ( 2 q 2 )
a 3 (if q 1 (mod3))
b a 2 x 3 , x ax
( q 2 )
(全て mod p での計算 )
16
Algorithm (Cubic Root) [2/2]
[step3] if b 1 (mod p ) then
return ( x, x * sym bol, x * sym bol2 )
else
find m min i
b 1 (mod p )
3i
if m r then
return " There is no cubic root"
[step4] if sym bol b
3m1
then
t y 2 , sym bol ( sym bol) 2
else
ty
t t
3r m1
, y t 3 , r m, x xt, b by
go to step3
(全て mod p での計算 )
17
計算量について
Cubic Residue
を求める際 , が mod 3 で 1 の素数の場合 ,
3
なる を求める時間を 考慮すると ,
(log4 ) となる .
cubic residue symbolの計算部分のみを考慮 すれば ,
(log2 N ( )) となる .
Cubic Root
平方根を求めるアルゴリズム(Tonelli-Shanks method)と
同様に, O (log4p) となる.
18
まとめ
相互法則等の証明は今回は省略しました.
詳細に関しては参考文献(*)(**)等を参照してください.
また,pythonで作成したプログラム等は
http://tnt.math.metro-u.ac.jp/labo/grad/2006/taketo/
にあります.
今後の課題
3乗根を求めるアルゴリズムについては
さらに速く (O (log3p)で) 計算できるものがあります.
このalgorithmをもとに, Cardanoの方法を用いて,
Fp上での3次方程式を解くことも可能となります.
19
References(1/2)
Ⅰ) TakingC ubeRoots in Z
m
(C .Padro,G.Saez) 2001
Ⅱ) On the C omputation of C ubeRoots Modulo p
(SigunaMuller) 2004
Ⅲ) A C lassicalIntroduction to
ModernNumber Theory (2nd ed)
(KennethIreland,MichaelRosen)
20
References(2/2)
Ⅳ) Efficient Algorithms for gcd and Cubic Residuosity
in the Ring of Eisenstein Integers
o
(Ivan B. Damgard, Cudmund Skovbjerg Frandsen)
2003
Ⅴ) Reciprocity Laws
(Franz Lemmermeye
r)
21
© Copyright 2026 ExpyDoc