■群と魔方陣(その1)


 n×n個の升目に1〜n ^2までの数を入れ,各行各列の合計が

  n(n ^2+1)/2

になるように並べたものが「魔方陣」である.よく知られたパズルであるから誰しも試行錯誤したことがあるに違いない.

 

 たとえば,

  [1,5,9]

  [8,3,4]

  [6,7,2]

は3次の魔方陣であり,縦の並びも横の並びもその和はすべて15となっている.ただし,ここでは対角線の和がそうなることは要求しないことにする.

 

 容易にわかるように2次の魔方陣は存在しない.なぜなら,左上を1で始めれば,各行各列の数字の和は5であるから,右上は4でなければならない.すると下の段は[2,3]あるいは[3,2]のいずれかであるが,どう並び替えても魔方陣にはならないのである

  [1,4]  [1,4]

  [2,3]  [3,2]

 

 また,ある属性をもつ対象を升目状に並べて,どの行どの列にもひとつずつその属性を有するものが並んだ配列を「ラテン方陣」という.

  [a,b,c]  [a,b,c]

  [b,c,a]  [c,a,b]

  [c,a,b]  [b,c,a]

は3次のラテン方陣であるが,縦も横も同じ文字が重複なく1回ずつしかでてこない.ラテン方陣を作るには,最初の行をa,b,cとして一行下がるごとに左に(あるいは右に)ひとつずつ巡回置換させればよい.

 

 ラテン方陣では属性はひとつであったが,次に属性を1つ増やして2つの属性を有する対象を升目状に並べた配列を考える.同じ組が現れずすべて異なる配列が「グレコ・ラテン方陣」である.グレコ・ラテン方陣はオイラーにちなんで「オイラー方陣」とも呼ばれる.

 

  [a,b,c] [α,β,γ] [aα,bβ,cγ]

  [b,c,a]+[γ,α,β]=[bγ,cα,aβ]

  [c,a,b] [β,γ,α] [cβ,aγ,bα]

は3次の左巡回ラテン方陣と右巡回ラテン方陣を組み合わせて,グレコ・ラテン方陣にしたものである.このように,合併してグレコ・ラテン方陣になる2つのラテン方陣を(比喩的に)直交するという.

 

 6次のラテン方陣は存在するのに対して,6次のグレコ・ラテン方陣は不可能であることが証明されている.その証明はタリー(1903年)によってなされたが,全数を列挙して調べつくすというものである.いまだ一般的・理論的な証明はなく,不可能性の証明は根気のいるしらみつぶしによる方法しかないのである.奇妙なことに,3つの属性についての3次元オイラー立方体は可能なことがわかっている(1977年).

 

 グレコ・ラテン方陣はnが奇数のときと4の倍数のときに可能である.1782年,オイラーはnが2の奇数倍のときグレコ・ラテン方陣は不可能と予想したのだが,この予想は誤りであって,n=2と6の場合だけが不可能なのである.

 

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

 

【1】グレコ・ラテン方陣と魔方陣

 

  [1,2,3] [1,2,3] [11,22,33]

  [3,1,2]+[2,3,1]=[32,13,21]

  [2,3,1] [3,1,2] [23,31,12]

は3次のラテン方陣を組み合わせて,グレコ・ラテン方陣にしたものである.

 

 これを3進法で表したものが3次の魔方陣に対応している.わかりやすいようにでてきた数のすべてから1をひいた後,3進法を10進法に直して1をたすと

  [00,11,22] [0,4,8] [1,5,9]

  [21,02,10]=[7,2,3]→[8,3,4]

  [12,20,01] [5,6,1] [6,7,2]

となり,3次の魔方陣の出来上がりである.

 

 しかし,4次のラテン方陣を組み合わせても

  [1,2,3,4] [1,2,3,4] [11,22,33,44]

  [4,1,2,3]+[2,3,4,1]=[42,13,24,31]

  [3,4,1,2] [3,4,1,2] [33,44,11,22]

  [2,3,4,1] [4,1,2,3] [24,31,42,13]

のように同じ数字が2回でてきてしまう.

 

 これらは非直交であるため,4次のグレコ・ラテン方陣とはならず失敗であった.一般にnが奇数の場合,2つのラテン方陣を組み合わせるとグレコ・ラテン方陣ができるが,偶数のときはダメである.実は4次の魔法陣はまったく別の方法で作ることができるのだが,それには「有限体」を理解することが必要になる.

 

 有限個の元と体の構造をもつ数体系が「有限体」である.代数学の教えるところによれば,n元の体(加減乗除の演算が定義された集合)が存在するための必要十分条件は,nが素数(のベキ乗)になっていることで,位数2,3,4=2 ^2,5の体は存在するが,位数6=2×3の体は存在しない.そして,位数7,8=2^3,9=3^2の体は存在して,位数10=2×5のものは存在しない.位数11,13の集合は体となるが,位数12=2^2×3,14=2×7のなす集合は決して体にはならない.

 

 そして,素数pに対して定まる有限体をF pと書く.

  F p={0,1,2,・・・,p−1}

はp個の元からなる.F 7={0,1,2,3,4,5,6}はあるが,F6というものは存在しないというわけである.

 

 また,F pの拡大体がFp^nである.Fp^nの0でない元の全体は位数p^n−1の乗法群をなすが,有限体は乗法の交換法則を満たすので可換体となる.有限体は計算機や通信などでいまや花形の数学の理論となっているのだが,有限体が必ず可換体になることを証明したのはウェダーバーンである(1905年).以下,有限体について復習してみよう.

 

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

 

【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に対して定まる有限体をF pと書きます.

  F 7={0,1,2,3,4,5,6}

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

 

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

 

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

 

 有限体F pの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を有限体F pの標数といいます.

 

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

  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)

7では,

  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を原始根といいます.F 7においては3,5が原始根です.

 

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

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

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

 

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

 

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

 

 次に,有限体F pを係数にもつ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

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

 

 F 5において,多項式x^2+3x+2を1次式の積として表せという問題では,整数係数のときのように足して3,掛けて2となる2数1,2はF5でも1と2でよく,答えは

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

となります.

 

  x ^2+4

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

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

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

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

となります.

 

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

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

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

 

 この定理は(普通の)多項式の因数分解の方法を与えているのですが,F p係数の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)

 

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

  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)

 

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

 

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

 

【4】拡大体F p^2

 

 前節では,f(x)=0が根をもつ場合を考えましたが,逆に,根が一つもなかったらどうなるのでしょうか? 

 

 答えを先にいうと,環F p[x]をmodf(x)で考えた剰余環を

  F p[x]/f(x)

と記すのですが,f(x)が既約ならば

  F p[x]/f(x)

は体となります.

 

 すなわち「剰余体になる」が答えですが,証明には興味がないので,ここでは根が一つもないような方程式を利用して,有限体F pを拡大したFp^2を具体的に構成することにします.証明法を述べるのはやめて,考え方に焦点をあててみたいというわけです.

 

 たとえば,F 3における2次方程式

  x ^2+1=0

を考えます.

  f(0)=1,f(1)=2,f(2)=5=2

ですから,これはF 3の中には根をもちません(=既約多項式).

 

  F 3[x]/(x^2+1)

では,剰余の次数は高々1次ですから,

  F 3[x]/(x^2+1)={ax+b|a,bはF3の元}

また,F 3=Z/3Zの元の集合は{0,1,2}ですから,

  {0,1,2,x,x+1,x+2,2x,2x+1,2x+2}

の9個の剰余類からなります.

 

 F 3では−1=2すなわち{0,1,2}={0,1,−1}ですから,

  {0,1,−1,x,x+1,x−1,−x,−x+1,−x−1}

としても同じことです.ともあれ,f(x)の次数をdとすると,F p[x]/f(x)の位数はp^d個あることがわかります.

 

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

 

 次に,この9個の元が体をなすだろうか? すなわち,加減乗除が可能だろうか? という問題が派生します.

 

  F 3[x]/(x^2+1)={ax+b|a,bはF3の元}

において,ax+bをabとして3進数表示すれば,集合としては

  {00,01,02,10,11,12,20,21,22}={0,1,2,3,4,5,6,7,8}

 

 桁ごとのF 3の加法,たとえば,

  3+5=x+(x+2)=2x+2=22=8

をまとめると

 

  +  0  1  2  3  4  5  6  7  8

  0  0  1  2  3  4  5  6  7  8

  1     1  2  3  4  5  6  7  8  0

  2     2  3  4  5  6  7  8  1  2

  3  3  4  5  6  7  8  1  0  2

  4  4  5  6  7  8  0  1  2  3

  5  5  6  7  8  0  1  2  3  4

  6  6  7  8  0  1  2  3  4  5

  7  7  8  0  1  2  3  4  5  6

  8  8  0  1  2  3  4  5  6  7

 

 また,乗法は多項式としての積のx ^2+1による剰余,すなわち,右辺の乗算はx^2+1が出てくるたびに0に置き換える(=x^2が出てくるだびに−1に置き換える)ことによって,たとえば,

  3×5=x(x+2)=x ^2+2x=2x−1=2x+2=22=8

が実現されます.

 

  ×  0  1  2  3  4  5  6  7  8

  0  0  0  0  0  0  0  0  0  0

  1     0  1  2  3  4  5  6  7  8

  2     0  2  1  6  8  7  3  5  4

  3  0  3  6  2  5  8  1  4  7

  4  0  4  8  5  6  1  7  2  3

  5  0  5  7  8  1  3  4  6  2

  6  0  6  3  1  7  4  2  8  5

  7  0  7  5  4  2  6  8  4  1

  8  0  8  5  7  3  2  5  1  6

 

 このように0〜8が一度ずつ現れましたし,0以外の元が

  1×1=1

  2×2=1

  (x+1)×(x+2)=1

  (x+2)×(x+1)=1

  2x×x=1

  (2x+1)×(2x+2)=1

  (2x+2)×(2x+1)=1

のように常に乗法に関する逆元をもっているわけですから,

  F 3[x]/(x^2+1)

が「体」となっていることがわかります.

 

 この拡大体をF 9と書きます.添字の9は9個の元からなることを表しています.前述したように

  Z/9Z={0,1,2,3,4,5,6,7,8}

(一般にZ/p ^2Z)では,有限環とはなっても有限体にはならないわけですから,紛らわしいので,F3^2あるいは一般にFp^2と書いた方がいいかもしれません.

 

 なお,F p^nの0でない元の全体は,位数p^n−1の乗法群をなします.この群のすべての元は

  f(x)=x ^(p^n-1)−1=0,すなわち,x^(p^n)=x

を満たします.また,

  (x+y) ^p=x^p+y^p  (和のp乗はp乗の和)

  (xy) ^p=x^py^p    (積のp乗はp乗の積)

ですから,p乗の算法は体をなしています.一般に,

  {f(x)} ^p=f(x^p)

が成立します.

 

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

 

 有限体を係数にもつ方程式を考えて,その根をつけ加えて得られる数体系も有限体と呼ばれます.

 

 体F 3にx^2+1の形式的な解を考えて,それをαとします.

  F 3(α)=F3[x]/(x^2+1)

と定義すると,

  F 3(α)={a+bα|a,b=F3}

 ={0,1,−1,α,α+1,α−1,−α,−α+1,−α−1}

です.

 

 x ^2+1=0のもう一つの解−αがこの体に入っていることから,x^2+1はこの体で1次式の積に分解されることがわかります.

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

 

 また,F 3には{0,1,2}={0,1,−1}を代入しても0にならない2次式(2次の既約多項式)がさらに2つあります.

  x ^2+x+2=x^2+x−1,

  x ^2+2x+2=x^2−x−1

 

 x ^2+x−1=0の解は1+α,1−α,x^2−x−1=0の解は−1+α,−1−αであって,F3にx^2+1=0の解を添加した体F3(α)はすべての既約2次方程式の解を含むことになります.もちろん有理数体においてはこのようなことは起こりません.

 

 何が問題なのかを意識していないと肝心なところがわからないので,説明を繰り返しますが,結局,「F p係数の既約方程式f(x)=0は

  F p[x]/f(x)

において根をもつ.」すなわち,F pを係数とする方程式を考え,その根をどんどん新しい数としてつけ加えていくと,ついにはどんな方程式からもそれ以上新しい根がでないような数の体系にたどりつくというわけです.

 

 換言すると,有限体F pを含んでいて,しかもあらゆるFp係数既約2次方程式が解けるというきわめて有用な有限Fpの2次拡大体Fp^2を構成したことになります.

 

 なお,ここで用いた既約多項式は

  f(x)=x ^2+1

ですから,この話はiを添加して実数体(R:a)を複素数体(C:a+bi)に拡大した話と完全に並行していることが窺えます.

 

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

 

【5】拡大体F 2^n

 

 ここでは,F 2係数既約n次方程式がその中に根をもつような有限体F2^nを構成します.この体は,近年,符号理論・暗号理論などの分野でますます重要な枠割りを果たしています.

 

 まず,素体F 2の2次拡大:F4=F2^2をつくることにしますが,

  f(x)=x ^2+1

  f(0)=1,f(1)=2=0

より,

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

のように因数分解されます.したがって,既約多項式ではありません.

 

 F 2係数2次方程式のうち,F2の中に根をもたないものは,

  x ^2+x+1

だけなのです.そこで,

  F 2[x]/(x^2+x+1)={ax+b|a,bはF2の元}

では,剰余の次数は高々1次で,F 2=Z/2Zの元の集合は{0,1}ですから,

  {0,1,x,x+1}

の4個の剰余類からなります.

 

 ax+bをabとして2進数表示すれば,集合としては

  F 4=F2^2={00,01,10,11}={0,1,2,3}

加算はビットごとのF 2の加法なので省略して,かけ算だけを示しますが,

  x ^2=−x−1=x+1  (F2では−1=1)

に置き換えると

  ×  0  1  2  3

  0  0  0  0  0

  1     0  1  2  3

  2     0  2  3  1

  3  0  3  1  2

 

 また,素体F 2の3次拡大

  F 8=F2^3={ax^2+bx+c|a,b,cはF3の元}

の原始方程式は

  x 3+x+1=0

より,

  x ^3=−x−1=x+1

に置き換えると,例えば,

  3×5=011・101=(x+1)(x ^2+1)=x^3+x^2+x+1

     =x+1+x ^2+x+1=x^2=100=4

 

  ×  0  1  2  3  4  5  6  7

  0  0  0  0  0  0  0  0  0

  1     0  1  2  3  4  5  6  7

  2     0  2  4  6  3  1  7  4

  3  0  3  6  5  7  4  1  2

  4  0  4  3  7  6  2  5  1

  5  0  5  1  4  2  7  3  6

  6  0  6  7  1  5  3  2  4

  7  0  7  5  2  1  6  4  3

 

 以上より,F 4もF8も体であることが確認されました.

 

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

 

 一般のnに対するF 2^nの計算も,原始方程式を見つけることができれば,まったく同様にできます.したがって,問題は原始方程式を見つけることです.任意のn次既約多項式はx^(p^n)−xの約数なのですが,1次因子〜高次因子をすべて求める方法にはこれ以上深入りせず,nが比較的小さいときの原始方程式をいくつか掲げておきます.

 

 最高次数の係数が1の多項式をモニックな多項式というのですが,多項式の場合,モニックで既約な多項式が,整数における素数に対応します.ここでは,F 2[x]において,モニックな既約多項式のみを考えます.

 

1)1次のモニックな既約多項式は,

  x,x+1

の2個.

 

2)2次のモニックな既約多項式は,

  x ^2+x+1

ただひとつです.

 

 定数項が0のものはxで割り切れますから,候補はx ^2+1とx^2+x+1の2つしかないのですが,x^2+1=(x+1)^2なので不可.x^2+x+1は0,1を代入しても0にならないので,1次因子をもたない.従って既約多項式です.

 

3)3次のモニックな既約多項式は

  x ^3+x+1,x^3+x^2+1

の2個.

 

 x ^3+ax^2+bx+cに0,1を代入すると,c,1+a+b+cで,これがどちらも0にならないのはa+b+1=0,c=1のとき.つまり,

  a=1,b=0,c=1またはa=0,b=1,c=1.

 

4)4次のモニックな既約多項式は

  x ^4+x+1,x^4+x^3+1,x^4+x^3+x^2+x+1

の3個.

 

 x ^4+ax^3+bx^2+cx+dに0,1を代入すると,d,1+a+b+c+dで,これがどちらも0にならないのはa+b+c+1=0,d=1のとき.これは1次因子をもたない条件.

 

 2次の既約多項式はx ^2+x+1だけ.これで割ってみると余りは,(b+c+1)x+a+b+d.これが0でないのは,b+c=0またはa+b+d=1.合わせればa=1,b=cまたはa=b,c=1.よって,

 a=1,b=c=0とa=b=c=1とa=b=0,c=1

 

5)5次の既約多項式は

  x ^5+x^2+1

など5個.

 

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

はF 2[x]上で既約ではない.

 

6)6次の既約多項式は

  x ^6+x+1

など9個.1,x,・・・,x ^6の奇数和で1とx^6を含むものの中にある.

7)7次の既約多項式は

  x ^7+x+1

など18個.

8)8次の既約多項式は

  x ^8+x^4+x^3+x^2+1

など30個.

 

 mod2で既約なF 2[x]について示しましたが,

mod3で既約な

1)1次式:x,x±1

2)2次式:x ^2+1,x^2±x−1

3)3次式:x ^3−x±1,x^3+x^2−1,x^3−x^2+1,

  x ^3+x^2+x−1,x^3±x^2−x−1,x^3−x^2+x+1

4)5次式:x ^5−x−1など

 

mod5で既約な

1)2次式:x ^2+x+1など

2)3次式:x ^3−x^2−1など

 

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