■ウォルステンホルムの定理(その2)

 一般に,pを素数,kをp−1で割り切れない正の整数とするとき,

  1+1/2^k+1/3^k+・・・+1/(p−1)^k

の分子はpで割り切れる

 =1+2^k+3^k+・・・+(p−1)^k

がpで割り切れることが示されています.すなわち,

  1+1/2^k+1/3^k+・・・+1/(p−1)^k=0  (mod p)

  1+2^k+3^k+・・・+(p−1)^k=0  (mod p)

ですが,(その1)では

  1+1/2^k+1/3^k+・・・+1/(p−1)^k

 =1+2^k+3^k+・・・+(p−1)^k  (mod p)

であることを証明なしに用いました.

 これは,

  1=1,1/2^k=2^k,1/3^3=3^k,・・・,1/(p−1)^k=(p−1)^k  (mod p)

という意味ではありません.各逆数1/1,1/2^k,・・・,1/(p−1)^k  (mod p)は,すべての剰余1,2^k,・・・,(p−1)^k  (mod p)をきっかり1回だけ覆うという意味で,再配列によって

  1+1/2^k+1/3^k+・・・+1/(p−1)^k

 =1+2^k+3^k+・・・+(p−1)^k  (mod p)

となるのです.

================================

【1】mod算術

 mod算術を扱う場合,1/2のような数はある整数と同値である.たとえば,

  1/2=6/2=3  (mod 5)

  1+1/2+1/3+1/4=1+13+17+19=0  (mod 25)

  x^2+3x+2=(x+1)(x+2)

は整数係数のおなじみの因数分解の問題であるが,足して3,掛けて2となる2数を見つければよい.1と2がこれを満たすわけであるから,答えは右辺のようになる.

 それでは,以下の例はどうであろうか?

  x^2+4=(x+1)(x+4)

  x^2+2x+2=(x+3)(x+4)

一見分解できなさそうに見える左辺が,右辺のように1次式の積として表されているのだから明らかな誤りと映るに違いない.ところがこれが正しいのである.

 そんな馬鹿なと思われるかもしれないが,実はこの因数分解のトリックは「有限体」にある.整数や有理数,実数や複素数の元は無限個あり,演算規則が定義されている.整数は環をなし,有理数,実数,複素数,4元数,p進数は体をなす.このことから,体の定義を思い出してほしいのだが,0以外の元が常に乗法に関する逆元をもつ数体系を「体」という.

 そして,有限個の元と体の構造をもつ数体系が「有限体」である.有限体は,計算機や通信などでいまや花形の数学の理論となっている.そんなわけで,今回のコラムでは有限体を係数にもつ多項式の因数分解を扱うことにした.

 なお,代数学の教えるところによれば,n元の体(加減乗除の演算が定義された集合)が存在するための必要十分条件は,nが素数(のベキ乗)になっていることで,位数2,3,4=2^2,5の体は存在するが,位数6=2×3の体は存在しない.そして,位数7,8=2^3,9=3^2の体は存在して,位数10=2×5のものは存在しない.

===================================

【2】有限環と有限体

 整数には奇数と偶数がありますが,

  ODD=1,EVEN=0

として,加法と乗法を定義すると

  +  0  1     ×  0  1

  0  0  1     0  0  0

  1 1  0     1  0  1

となります.

 偶数か奇数かは2で割ったときの余りで識別できますが,同様に3で割ったときの余りで分類した数体系を考えます.余りは0,1,2のどれかですから,

  +  0  1  2     ×  0  1  2

  0  0  1  2     0  0  0  0

  1 1  2  0     1  0  1  2

  2 2  0  1     2  0  2  1

のような演算を定義することができるわけです.

 もう少し続けてみることにしましょう.n=4のとき

  +  0  1  2  3     ×  0  1  2  3

  0  0  1  2  3     0  0  0  0  0

  1 1  2  3  0     1  0  1  2  3

  2 2  3  0  1     2  0  2  0  2

  3  3  0  1  2     3  0  3  2  1

n=5のとき

  +  0  1  2  3  4

  0  0  1  2  3  4

  1 1  2  3  4  0

  2 2  3  4  0  1

  3  3  4  0  1  2

  4  4  0  1  2  3

  ×  0  1  2  3  4

  0  0  0  0  0  0

  1 0  1  2  3  4

  2 0  2  4  1  3

  3  0  3  1  4  2

  4  0  4  3  2  1

その算法(和と積)はそれぞれ和,積のmod5での余りとなります.足し算では巡回するだけで面白味がないので,これ以降はかけ算だけを続けてみます.

n=6のとき

  ×  0  1  2  3  4  5

  0  0  0  0  0  0  0

  1 0  1  2  3  4  5

  2 0  2  4  0  2  4

  3  0  3  0  3  0  3

  4  0  4  2  0  4  2

n=7のとき

  ×  0  1  2  3  4  5  6

  0  0  0  0  0  0  0  0

  1 0  1  2  3  4  5  6

  2 0  2  4  6  1  3  5

  3  0  3  6  2  5  1  4

  4  0  4  1  5  2  6  3

  5  0  5  3  1  6  4  2

  6  0  6  5  4  3  2  1

 いずれのかけ算の表でも,

  1)0の行・列はすべて0

  2)主対角線に関して対称

です.また,0以外の行・列では,n=2,3,5,7の場合,0〜n−1が一度ずつ現れましたが,n=4,6ではそうはならず,非常に大きな違いがあることに気づきます.

 a・a^(-1)=1となるa^(-1)をaの逆元といいます.n=7の表で説明すると,1の逆元は1,2の逆元は4,3の逆元は5,4の逆元は2,5の逆元は3,6の逆元は6となるというわけです.

 0以外の元が常に乗法に関する逆元をもつ数体系を「体」といいますが,以上の結果において,2,3,5,7は素数,4,6は合成数ですから,集合

  {0,1,2,・・・,n−1}

はnが素数のとき体となる,合成数のとき環であって体ではないことを示しているのです.

 重要なのは,

  「pが素数のとき,Z/pZは体である.」

ということで,素数pで割ったときの余りで分類した数体系を考えると,p個の元からなる有限体ができあがります.そして,素数pに対して定まる有限体をFpと書きます.

  F7={0,1,2,3,4,5,6}

はあるが,F6というものは存在しないというわけです.

 なお,有限体は乗法の交換法則を満たすので可換体となります.有限体が必ず可換体になることを証明したのはウェダーバーンです(1905年).

===================================

 有限体Fpの0以外の元をaとします.このとき,aをp回足すとはじめて0になります.素数7を例にとって,F7でa=3を何回もたしてみると

  3+3=6

  3+3+3=6+3=2

  3+3+3+3=2+3=5

  3+3+3+3+3=5+3=1

  3+3+3+3+3+3=1+3=4

  3+3+3+3+3+3+3=4+3=0

このpを有限体Fpの標数といいます.

 また,aをp−1回掛けると1になります.F7において

  a\^n  1  2  3  4  5  6

   1   1  1  1  1  1  1

   2   2  4  1  2  4  1

   3   3  2  6  4  5  1

   4   4  2  1  4  2  1

   5   5  4  6  2  3  1

   6   6  1  6  1  6  1

最後の列はすべて1です.

 このように,pで割り切れない整数aに対して,フェルマーの定理

  a^(p-1)=1  (mod p)

が成り立つというわけです.また,このことからa^(p-2)がaの逆元となることも理解されます.

  1/a=a^(p-2)

F7では,

  1/3=3^5=5,1/6=6^5=6

 なお,この表において,1は1乗してはじめて1になりますが,2は3乗して,3は6乗して,4は3乗して,5は6乗して,6は2乗してはじめて1になります.pと互いに素な整数aがp−1乗してはじめて1になるとき,aを原始根といいます.F7においては3,5が原始根です.

 Fpにおける原始根aが与えられたとき,0以外のすべての元は,

  a^i   (i=0〜p-2)

の形に表すことができます.

===================================

【3】Fp係数多項式(方程式)

 次に,有限体Fpを係数にもつ1変数多項式の集合Fp[x]を考えます.たとえば,

  x^2+2x+3

において,mod5の多項式と考えるというのは,係数がmod5で合同な多項式はすべて同じものと見なすということです.

  x^2+2x+3

 =x^2+7x+8

 =6x^2−3x+3

 =−4x^2−12x−23

Fp[x]が環をなすことは簡単に証明できます.

 冒頭に掲げた問題は,F5において,多項式を1次式の積として表せというものなのですが,整数係数のときのように足して3,掛けて2となる2数1,2はF5でも1と2でよく,答えは

  x^2+3x+2=(x+1)(x+2)

となります.

  x^2+4

では足して0,掛けて4となる2数は整数ではあり得ませんが,前述の足し算とかけ算と表を見ると,F5では1と4がこれを満たすので,

  x^2+4=(x+1)(x+4)

同様に足して2,掛けて2はF5では3と4より,

  x^2+2x+2=(x+3)(x+4)

となります.

 この例ではF5だったので,前述の足し算とかけ算と表を見ながらやるとわかりやすいのですが,pが大きくなると簡単ではなくなります.そこで,因数定理「n次方程式f(x)=0がαを根にもつならば,

  g(x)=(x−α)q(x)

という形に分解できる」を用いることにします.

 この定理は(普通の)多項式の因数分解の方法を与えているのですが,Fp係数のn次方程式がFpの中に根をもつ場合でも適用され,確実でしかも速いやり方になっています.

 たとえば,

  f(x)=x^2+4

とおいて,xに順次0から4まで代入して,mod5として計算してゆくと

  f(0)=4,f(1)=5=0,f(2)=8=3,f(3)=13=3,f(4)=20=0

より,f(x)=0の2根は1(=−4)と4=−1.したがって,

  x^2+4=(x−1)(x−4)=(x+4)(x+1)

 同様に,

  g(x)=x^2+2x+2

では

  g(0)=2,g(1)=5=0,g(2)=10=0,g(3)=17=2,g(4)=22=2

より,g(x)=0の2根は1(=−4)と2(=−3)の2個.したがって,

  x^2+2x+2=(x−1)(x−2)=(x+3)(x+4)

 普通にできる因数分解も,有限体F5上で考えると

  h(x)=x^2+3x+2

  h(0)=2,h(1)=6=1,h(2)=12=2,h(3)=20=0,h(4)=30=0

したがって

  x^2+3x+2=(x−3)(x−4)=(x+2)(x+1)

 このように,任意のFp係数多項式Fp[x]は有限個の既約多項式の積に分解されるのですが,整数と同様に,この分解は係数の違いを無視すれば一意に決まります.

===================================