読者です 読者をやめる 読者になる 読者になる

mattyuuの数学ネタ集

世界は数式で溢れている

有限体Fpの乗法の可視化

twitterを始めて数学好きの方をフォローするとp進数体(\mathbb{Q}_p)という言葉をよく聞くようになりました。p進数体は数論をやる中では空気のように出てくる数学的対象のようですが、数論を勉強して来なかった私は今年5月の第13回数学カフェ(素数回)でその存在を初めて知りました。

ずっと数学は好きだったので、読み物とかでp進数体は何度か目にしていたとは思うのですが、おそらくその度に頭の中で有限体{\mathbb F}_pに変換されていたものと思います。({\mathbb F}_pは体(たい)だし、1,2,\cdots,p-1,p(=0)という風にp進むと0になって、なんか10進法に似てるので、{\mathbb F}_pp進数体と勘違いしても仕方ないような気がします。。。)

p進数体は今後本格的に勉強して何かブログを書いてみたいと思いますが、今回は{\mathbb F}_pに関して、その乗法(掛け算)、除法(割り算)の構造を可視化してみたので紹介したいと思います。(今回は可視化した絵を紹介したい!ということが目的ですので{\mathbb F}_pが何なのかといった数学的背景の説明は必要最低限に留めます。というかほとんどないです。)

では可視化の対象となる{\mathbb F}_pとその乗法、除法が何者であるかを説明していきましょう。

以下p素数として、次のp個の元からなる集合を{\mathbb F}_pと定義します。(厳密には加法(足し算)、乗法をセットで定義したものを{\mathbb F}_pとします。)

\displaystyle
\mathbb {F}_p = \{0,1,2,\cdots,p-1\}

さて、{\mathbb F}_pの元abに対してその積a*bを、

\displaystyle
a*b=(ab\mbox{を}p\mbox{で割った余り})

で定義します。通常の積とは異なるので*を付けています。

いかめしく「積を定義する」と書いてしまいましたが、何のことはございません。{\mathbb F}_pを整数の部分集合と考えて通常の積を行ってしまうと、その結果が{\mathbb F}_pからはみ出してしまうので、pで割った余りを積としているだけです。
例えば 、p=5の時、{\mathbb F}_5の元34を通常の積で計算すると12となりますが、{\mathbb F}_5=\{0,1,2,3,4\}であり、12は含まれません。それでは困るので、5で割った余りを考えて3*4=2としているのです。

実際にp=5の場合の九九表を書いてみましょう。(正確には五五表です。)

f:id:mattyuu:20161107003050j:plain

次に除法を定義しますが、実際にどうやって計算するのかを示した方が早そうです。積と同様に{\mathbb F}_5にて3\div 4を計算してみましょう。{\mathbb F}_5有理数の部分集合と考えて通常の割り算を行うと、3\div 4=3/4=0.75となりますが、積の時と同様こちらも{\mathbb F}_5に含まれません。有理数での考えは捨てて、3\div 4の答えが満たす条件を考えましょう。

\displaystyle
3\div 4=X

とした時、両辺に4をかけて、

\displaystyle
3=4*X

となりますので、3\div 4の答えは、4を掛けると3になる{\mathbb F}_5の元ということになります。

そこでもう一度{\mathbb F}_5の九九表を見てみると、

f:id:mattyuu:20161107003108j:plain

24を掛けると3になることが分かりますので、{\mathbb F}_5の世界では3\div 4=2となります*1。日常生活の計算を実数の世界で行っている我々には不思議に思えますが、これは{\mathbb F}_5の世界ではこれは立派な除法になっているのです。

では除法も九九表で表しておきましょう。

f:id:mattyuu:20161107003121j:plain

簡単ではありましたが、可視化の対象である{\mathbb F}_pとその乗法、除法の説明を終わります。

さて、任意の素数pに対して、{\mathbb F}_pの乗法と除法の九九表を書けるようになったのですが、数字だけの九九表だけを見てもあまり面白みが湧きません。

f:id:mattyuu:20161107003728j:plain

幸い私たち人間は色を認識することができますので、この九九表を決まった規則で色分けして可視化してみましょう(九九表になっている時点で乗法、除法は可視化できているとも言えるのですが、この記事では色分けを以って可視化するいうことにしています)。

色分けすると言っても、適当な色を塗ってしまっては台無しです。数が大きくなるにつれてだんだん薄くなるように色を塗りましょう(厳密には{\mathbb F}_pは順序集合ではないため、数が大きい、小さいという概念はありません)。

f:id:mattyuu:20161107003205j:plain

{\mathbb F}_pの九九表は人間が勝手に決めた表ではなく、自然の規則だけで作成した表であり、塗る色もできるだけ人為的でない規則で選んだつもりですので、きっと美しい絵図が現れるはずです!

なお、乗法の0が入る行、列は全部0で面白みがありません。また除法も0の列は禁断の零除算で定義されませんし、0の行は0が並ぶだけでこちらも面白みがありません。そのため乗法、除法共に0の行と列は可視化対象外とします。

では、まずは乗法から。最初にp=19の乗法の九九表をお見せしましょう!

f:id:mattyuu:20161106224054j:plain

!!w(*゚o゚*)w!!
最初に見たとき、びっくりしました!何か綺麗な図が現れるだろうと予想してたら、本当に綺麗な図が現れたんです!

p=97p=397pを大きくしてくと、次のようにパターンが複雑になっていきます!

p=97
f:id:mattyuu:20161106224104j:plain

p=397
f:id:mattyuu:20161106224116j:plain

p=397まで大きくすると、何か星のようなものがはっきり見えます。私の予想では星の境界線はおおよそ[xy=1]の双曲線を伸縮したり、並行移動したりしたものになっているものと思います。今回は可視化した絵を紹介したいだけということで考察は行っていません。

次に除法です。同じルールでp=19を可視化してみましょう!ワクワク!

f:id:mattyuu:20161106224051j:plain

Σ( ̄Д ̄;)がーんっ!
き、綺麗じゃない(←あくまで主観)、、、切なかったです。。。でもこれも自然が決めた図柄です。「除法は乗法と違って構造が複雑なんだよ」と自然が教えてくれているのではないでしょうか。

乗法のときと同じようにp=97p=397pを大きくしてみましょう。

p=97
f:id:mattyuu:20161106224058j:plain

p=397
f:id:mattyuu:20161106224109j:plain

何やら、左上から右下にかけてピンク色の線、左下から右上にかけて白色の線が現れています。やはり除法に関してもまだ考察は行っていませんので、この線が何なのかはまだわかりません。

ここで乗法、除法の可視化を通して特筆したいことがあります。実はどの横一列、どの縦一列を選んでも同じ色が重複しているものはありません*2。どの一列を選んでも、その列の色を並び替えることで白からピンク色へ単調なグラデーションを作ることができます。

そんな厳しい条件がある中で目の前に現れてくれた乗法、除法の図に「ありがとうございましたm(_ _)m」と言いたいところですが、実はこの条件はそんなに厳しいものではありませんでした。

9素数ではありませんが、パズルで流行っている数独(←ナンプレともいう)もこの条件を満たしますね。この条件がとても厳しいものであれば、世の中の数独の答えのパターンは多く存在することができないため、「この問題どこかで解いたことあるぞ、つまんね」となって、数独はここまで流行らなかったと思われます。
しかも数独3\times 3の小さい区画に関しても1から9が重複しない(=色が重複しない)というより厳しい条件を満たしていますので、なおさらです。

f:id:mattyuu:20161107003228j:plain

では、n\times nの表で、どの横一列、どの縦一列にも1からnの数(もしくはn色の色)を重複しないように並べる方法は何通りあるのでしょうか。私は小一時間この問題を考えて諦めました。ネットで調べたところこのような条件を満たす表をラテン方陣、またはラテン方格というようで、今現在nを使った解析解は求まっていないようです。あのオイラーも挑戦したことがあるようで、私が少し考えるだけで答えに辿り着けるわけありませんでした。

ちなみにですが、数独n=9ではラテン方陣は15,224,734,061,278,915,461,120通りあるようです。組み合わせ爆発の凄さを考えると、おそらくn=p=19ではこの宇宙の全星の数、というか全原子の数を優に超えているのではないでしょうか。乗法、除法の図に対しては「想像もできないような多くのパターンの中から、私の目の前に現れてくれてありがとうございましたm( )m」と言うべきなのでしょう。

最後にp=2から397まで素数pを大きくするに従って、可視化した乗法、除法の絵図がどのように変化するかのアニメーションをお見せして終わります。
乗法の方は何やら星がきらめいているような感じがします。

乗法
f:id:mattyuu:20161106224144g:plain

除法
f:id:mattyuu:20161106224205g:plain

ありがとうございました。

f:id:mattyuu:20161107003243j:plain

          • 以下、数学的補足

今回数学的な背景の説明はほとんどしておりません。念のために記載しておいた方が良いと思われる、2点に関して補足コメントします。

{\mathbb F}_pにおいて割り算ができること】
{\mathbb F}_5において、4をかけて3になるものを見つけることによって、3\div 4の答えとしましたが、そのような答えはいつでも見つかるのでしょうか。
実はp素数であることが大いに影響しています。

素数とは限らない一般の正の整数nに対して、今回考えたような乗法を同様に定義することができます。加法も適当に定義することで、{\mathbb Z}_nという足し算、掛け算のできる数学的対象が得られます(数学的には環と言います)。実は{\mathbb Z}_nn素数のときに限り0以外の任意の元で割り算を行うことが可能になります(数学的には体(たい)と言います)。n素数pのとき、割り算ができるという理由から{\mathbb Z}_pを特別に{\mathbb F}_pと書いていたのです。

{\mathbb Z}_nに関して勉強したい方はtsujimotterさんの下記の動画がオススメです!


2-2. 時計の世界の整数論 - 2015/3/27

最後の「ありがとうございました」の画像にはこちらの動画で紹介されている表を可視化し、オイラー基準とフェルマーの小定理が成り立っていそうということを確認しております。

【 乗法、除法の九九表のどの一列を選んでも数字、もしくは色が重複しないこと】
実は割り算ができることと、任意の列(0の列行は除く)の中で数字、色が重複しないことは同値になります。
ここはただの補足コメントということで、割り算ができれば、数字、色が重複しないことだけ簡単に示します。
例えば、乗法のある横一行で数が被ってしまったとします。つまり、b_1\neq b_2に対して、a*b_1=a*b_2が成り立ったとすると、両辺をaで割ることでb_1=b_2となりこれは仮定に矛盾します。

先のコメントで{\mathbb F}_pは割り算ができることを(証明していませんが)伝えていますので、どの一列でも数字、色が重複しないことがわかります。

                                              • -

*1:数学的補足参照

*2:数学的補足参照