tsujimotterのノートブック

日曜数学者 tsujimotter の「趣味で数学」実践ノート

群論を知れば循環小数はもっと面白い(1/7や1/13を例に)

今回は「循環小数」の奥深い世界にご招待します。

これまでtsujimotterのノートブックでも何度か取り上げてきたテーマですが、循環小数は一見高校生にも馴染みのある素朴な存在です。しかし、その背後には大学数学の群論という、抽象でありながらも美しい理論が広がっています。

実は、群論の知識をひとたび手にすると、循環小数の見え方が劇的に変わり、より深い魅力に気づくことができるのです。題して

「群論を知れば循環小数はもっと面白い」

というわけです。


本記事では、巡回群や  (\mathbb{Z}/m\mathbb{Z})^\times、剰余群といった群論の用語が登場します。これらに少しでも触れたことがある方なら、より一層楽しんでいただけるでしょう。もちろん、群論に不慣れな方でも、循環小数という身近な題材を通じて「数学ってこんな風に深いんだ」と感じるきっかけになれば幸いです。

具体的には、

 \displaystyle \frac{1}{7} = 0.142857142857\ldots

 \displaystyle \frac{1}{13} = 0.076923076923\ldots

といった循環小数の計算例からスタートし、その魅力をひも解いていきます。

こういう図や

こういう図

が登場します。

ぜひ最後までご覧になってください。

目次:

 

こちらの内容は「日曜数学会」でも発表されています

www.nicovideo.jp


0. 今回の記事で出てくる群論の基礎事項

本記事を読む上でおさえておきたい群論の基礎事項をいくつか紹介します。
この段階で理解する必要はないので、必要なときに戻ってきてください。

  • 群の位数・元の位数
    •  G を群としたとき、 G の要素数を群  G位数といい、 |G| で表す
    •  G の元  g について、 g^k = e(単位元)となる最小の正の指数  k を元  g位数という
  • 巡回群
    •  G G の元  g を用いて  H = \{g^0, g^1, \ldots, g^{n-1}\} と表される  G の部分群  H を、 H = \langle g\rangle と表す。このとき、 H g で生成されるといい、 g H生成元と呼ぶ。
    •  G = \langle g \rangle となるような  g が存在するとき、 G巡回群であるという。

 

1. 循環節の長さと群の位数(1/7を例に)

まず、基本的なところからおさらいしたいと思います。
 m 2 5 以外の素因数を持つとき、 1/m の小数展開は循環します。

たとえば、 m = 7 とすると

 \displaystyle \frac{1}{\,7\,} = 0.142857142857\ldots

となり、以降も  142857 が繰り返されます。

このように同じ並びが繰り返される単位のことを循環節といいます。


今回の記事を通して、 p を素数として、 1/p について考えたいと思います。

 1/p の循環節についていくつか例を挙げたいと思います(下線部が循環節です)。

  •  1 / 3 = 0.\underline{3}(長さ1)
  •  1 / 7 = 0.\underline{142857}(長さ6)
  •  1 / 11 = 0.\underline{09}(長さ2)
  •  1 / 13 = 0.\underline{076923}(長さ6)
  •  1 / 17 = 0.\underline{0588235294117647}(長さ16)
  •  1 / 19 = 0.\underline{052631578947368421}(長さ18)
  •  1 / 23 = 0.\underline{0434782608695652173913}(長さ22)
  •  1 / 29 = 0.\underline{0344827586206896551724137931}(長さ28)
  •  1 / 31 = 0.\underline{032258064516129}(長さ15)


循環節の長さは分母の数によってまちまちです。

循環する桁数を考えるには、割り算の筆算を考えると分かりやすいです。

上の筆算は次の手順で計算されています:

  • (小数第1位の計算)元の数  1 10 倍して  10 とし、これを  7 で割り算する( 10 \div 7 = 1 あまり  3 を得る)。商の  1 を小数第1位とし、あまり  3 を次の桁の計算に用いる。
  • (小数第2位の計算)あまり  3 10 倍して  30 とし、これを  7 で割り算する( 30 \div 7 = 4 あまり  2 を得る)。商の  4 を小数第2位し、あまり  2 を次の桁の計算に用いる。

(以下、繰り返し)


小数第6位の計算結果にあまり  1 が出ているのが注目ポイントです。
小数第7位の計算の際に、再び  10 \div 7 を実行することになり、以下、小数第1位と同じ結果が繰り返されます。したがって循環するというわけです。


以上の考察から、 1/p が循環する仕組みは「 1 \div p の筆算の計算の中で、あまりとして再び元の数  1 が登場すること」にあると分かります。
 1 が登場するタイミングで循環節が終わることも同時に分かります。


ところで、筆算の途中過程をすっ飛ばすと、次のように見ることもできます:

これは、 1000000 \;(= 10^6) 7 で割ったあまりが  1 であることを意味します。


より一般に、 10^k p で割ったあまりが  1 であるときに、 1/p k 桁で循環することになります。循環節の長さは、そのような  k の中で最小のものとなります。


これは群論を使って言い換えることができます。

まず、

 \mathbb{Z}/p\mathbb{Z} = \{ \overline{0}, \; \overline{1}, \; \ldots, \; \overline{p-1} \}

を考えます。

 \overline{a} a p で割ったあまりを表します。より正確には  a を代表元とする  \bmod{p} での同値類を考えます。

また、 \mathbb{Z}/p\mathbb{Z} の乗法群(逆元を持つ元全体のなす群)を  (\mathbb{Z}/p\mathbb{Z})^\times とします。

 (\mathbb{Z}/p\mathbb{Z})^\times は、 \mathbb{Z}/p\mathbb{Z} の元  \overline{a} であって「 a p と互いに素である」という条件を満たすものの全体となります。
 p が素数より
 (\mathbb{Z}/p\mathbb{Z})^\times = \{ \overline{1}, \; \overline{2}, \; \ldots, \; \overline{p-1} \}

となります。

ここで、 \overline{10} \in (\mathbb{Z}/p\mathbb{Z})^\times の位数(べき乗して  \overline{1} になる最小の指数)が  1/p の循環節の長さとなります。これは定義から明らかですね。


これらの関係を「循環小数の基本原則 *1」としてまとめておきましょう。

循環小数の基本原則
 p p \neq 2, 5 なる素数とすると、次が成り立つ:

 1/p の循環節の長さ
 =  10^k p で割ったあまりが  1」である最小の素数  k
 = \; (\mathbb{Z}/p\mathbb{Z})^\times における  \overline{10} の位数


2. すべてのあまりを巡回する

 1 \div 7 の筆算を見ていると、もう少し面白いことが起きています。筆算の各桁を計算する際には、 10^k 7 で割ったあまりを順に計算することになります。

ここであまりの計算結果として  (\mathbb{Z}/7\mathbb{Z})^\times のすべての元  \overline{1}, \;  \overline{2}, \;  \overline{3}, \;  \overline{4}, \;  \overline{5}, \;  \overline{6} が現れることがポイントです。

群論的には、 \overline{10} が生成する  (\mathbb{Z}/7\mathbb{Z})^\times の部分群が全体に一致することが分かります。すなわち

 (\mathbb{Z}/p\mathbb{Z})^\times = \langle \overline{10} \rangle

が成り立つということです。


 (\mathbb{Z}/7\mathbb{Z})^\times \overline{10} で生成されることを図示するために、正七角形を用意してみました。

 (\mathbb{Z}/7\mathbb{Z})^\times には  \overline{0} は入っていないので、一番上の  0 にバツ印をつけておきます。

 10\equiv 3 \pmod{7} からスタートして、頂点を繋いでいきます。

 10^2 \equiv 2 \pmod{7} なので、 3 から  2 へと線を結びます。

 10^3 \equiv 6 \pmod{7} なので、 2 から  6 へと線を結びます。

 10^4 \equiv 4, \;\; 10^5 \equiv 5\pmod{7}, \; 10^6 \equiv 1 \pmod{7} と同様に繰り返して、次の図を得ます。

もう一度  10 を掛けると、 3\pmod{7} に一致するので、ぐるっと一周します。

これにて、 10 をひたすら掛けるだけで、 (\mathbb{Z}/7\mathbb{Z})^\times の元がすべて生成されることが確認できました。



一般に、 (\mathbb{Z}/p\mathbb{Z})^\times は巡回群です(ある1つの元  g によって生成される)。これは数論的には原始根定理と呼ばれます。この定理は「体の乗法群の有限部分群が巡回群であること」から導かれます。

一方、原始根定理は生成元の存在だけが分かる定理なので、どのような元が生成元になるかは明らかではありません。

今回  p = 7 のときに、たまたま  \overline{10} が生成元になりましたが、後で紹介する  p = 13 のときは  \overline{10} は生成元にはなりません。


一般に、 \overline{10} (\mathbb{Z}/p\mathbb{Z})^\times の生成元であるときに限り、 1/p の循環節の長さは  p - 1 となります(「循環小数の基本原則」より)。

 p = 7 のとき、 \overline{10} (\mathbb{Z}/7\mathbb{Z})^\times の生成元であることから、 1/7 の循環節の長さが  7 - 1 = 6 となるわけです。


3. ダイヤル数が生まれる仕組み

上で述べた  1/7 の循環節の長さが  6 であるという事実から、ダイヤル数 という興味深い性質が導かれます。


 142857 という「どこかで見たことある数」はダイヤル数と呼ばれる数の一種です(ダイヤル数の定義は後ほど)。

さて、この数に対して  1, 2, 3, 4, 5, 6 という数を掛けると、次のようになります:

 142857 \times 1 = 142857
 142857 \times 2 = 285714
 142857 \times 3 = 428571
 142857 \times 4 = 571428
 142857 \times 5 = 714285
 142857 \times 6 = 857142

このままでは少し分かりづらいので、順番を変えてみましょう:

 142857 \times 1 = 142857
 142857 \times 3 = 428571
 142857 \times 2 = 285714
 142857 \times 6 = 857142
 142857 \times 4 = 571428
 142857 \times 5 = 714285

色をつけるとより分かりやすくなります:

 142857 という数に、1 〜 6を掛けることによって1桁ずつ左にスライドしていることが分かります。面白いですね!
どうしてこんな現象が起きるのでしょうか。


わざとらしく「どこかで見たことある数」であると言いましたが、実は  142857 1/7 の循環節の数そのものですね。当然、「数を掛けると1桁ずつ左にスライドする」仕組みも  1/7 から導くことができます。



実際、上で紹介した左スライド現象は、 1/7 に1 〜 6の数を掛けることで再現されます:


問題は、なぜ  1/7 3 を掛けることで循環節が左スライドするのか、という点ですが、このことは  1/7 の筆算と  3/7 の筆算を同時に見比べると分かります:

 1/7 の筆算では

  •  10 \div 7 = 1 あまり  3
  •  30 \div 7 = 4 あまり  2
  •  20 \div 7 = 2 あまり  6
  •  60 \div 7 = 8 あまり  4
  •  40 \div 7 = 5 あまり  5
  •  50 \div 7 = 7 あまり  1

の計算が行われるわけですが、 3/7 の筆算では  30 \div 7 = 4 あまり  2 が最初に計算されます。

つまり、 3/7 の計算では  1/7 において「あまり3が降ろされた桁(小数第2位)」から計算がスタートするのと同じことになります。だから小数展開の結果も、1個先の桁が登場することになるのです。

同様に  2/7 の計算では、 1/7 において「あまり2が降ろされた桁(小数第3位)」から計算がスタートするのと同じことなので、小数点解の結果に2個先の桁が登場することになります。

以上が「数を掛けると1桁ずつ左にスライドする」仕組みです。


 p = 7 のときの  1/p のような状況は、一般の素数  p にも考えることができます。

 1/p の循環節の数を  x としたとき、 2x, \; 3x, \; \ldots, (p-1)x が「 x を巡回させた数」になるとき、 xダイヤル数といいます。


実は、

「①  1/p の循環節の数  x がダイヤル数であること」

と、

「②  1/p の循環節の長さが  p-1 であること」

は同値なのですが、このことはこれまでの議論をよくよく考えると分かります。以下で証明してみましょう。


「循環小数の基本原則」より②と

「③  (\mathbb{Z}/p\mathbb{Z})^\times = \langle \overline{10} \rangle

は同値なので、以下では①と③の同値性を示します。


(③  \Longrightarrow ① の証明)
 1/p の循環節を1桁左にスライドさせた小数は、 1/p 10 倍した数と等しくなります。同様に  k 桁左にスライドさせた数は  10^k 倍した数と等しくなります。

また、 1/p 10^k 倍した数の小数部分は、 a \equiv 10^k \pmod{p} である数  a 1\leq a \leq p-1)に対する  a/p と等しくなります。
(小数部分をとることは、分子を \bmod{p} することに対応することに注意。)


したがって、集合としての等号

 \{ \overline{1}, \; \overline{2}, \; \overline{3}, \; \ldots, \; \overline{p-1} \} \; = \; \{\overline{10}, \; \overline{10}^2, \; \overline{10}^3, \; \ldots, \; \overline{10}^{p-1} \}

が成立するならば、 a = 1, 2, 3, \ldots, p-1 に対して  a/p の循環節が  1/p の循環節をスライドさせたものと(小数部分が)一致することになります(すなわち①が成立する)。

この等号が成立する条件は「③  (\mathbb{Z}/p\mathbb{Z})^\times = \langle \overline{10} \rangle」と言い換えることができます。
したがって③が成立するならば、①が成立することが示されました。


(①  \Longrightarrow ③ の証明)
対偶をとって「③ではない  \Longrightarrow ①ではない」を考えます。

 (\mathbb{Z}/p\mathbb{Z})^\times \neq \langle \overline{10} \rangle より、 \overline{a} \not\in \langle \overline{10} \rangle を満たすような  a 1 \leq a \leq p-1)をとると  10^k \not\equiv a \pmod{p} を満たす  k が存在しません。

すなわち、この  a/p の循環節は、 1/p の循環節をスライドさせた数になりません。

以上により「③ではない  \Longrightarrow ①ではない」が示されました。

(証明終わり)



4. 剰余群から見る循環小数のクラス分け(1/13を例に)

ここまで  1/p の循環節がダイヤル数になる場合を考えてきましたが、ダイヤル数にならない場合はどうなるでしょうか。実はこの場合もとても面白いことが起きるのです。


 p = 13 として  1/13 の例を考えましょう。

 \displaystyle \frac{1}{13} =  0.\underline{076923}


ダイヤル数のときと同じように、 1/13 a = 1, 2, 3, \ldots, 12 を掛けてみましょう。

  •  1 / 13 = 0.\underline{076923}
  •  2 / 13 = 0.\underline{153846}
  •  3 / 13 = 0.\underline{230769}
  •  4 / 13 = 0.\underline{307692}
  •  5 / 13 = 0.\underline{384615}
  •  6 / 13 = 0.\underline{461538}
  •  7 / 13 = 0.\underline{538461}
  •  8 / 13 = 0.\underline{615384}
  •  9 / 13 = 0.\underline{692307}
  •  10 / 13 = 0.\underline{769230}
  •  11 / 13 = 0.\underline{846153}
  •  12 / 13 = 0.\underline{923076}


このままだと分かりづらいので、2列に分けてみましょう。

色も付けてみると、より分かりやすくなります。

便宜上、左側を「 1/13 のクラス」、右側を「 2/13 のクラス」と呼ぶことにします。

 1/13 a = 1, 10, 9, 12, 3, 4 を掛けると「 1/13 のクラス」の循環節に一致します。
(より強く「 1/13 のクラス」に属する循環小数に、  a = 1, 10, 9, 12, 3, 4 を掛けると「 1/13 のクラス」の循環節に一致します。)

一方で、 1/13 a = 2, 7, 5, 11, 6, 8 を掛けると、今度は「 2/13 のクラス」の循環節に一致します。
(より強く「 1/13 のクラス」に属する循環小数に、  a = 2, 7, 5, 11, 6, 8 を掛けると「 2/13 のクラス」の循環節に一致します。)



とても面白い現象ですが、裏にある背景を説明しましょう。

これを説明するためには  \mathbb{Z}/13\mathbb{Z} の乗法群  (\mathbb{Z}/13\mathbb{Z})^\times が必要なので、 p = 7 のときと同様、「正十三角形」を用意したいと思います。

このまな板は家の近所で買いました。見つけたときは大変興奮しました。

上の頂点から時計回りに  0, 1, 2, 3, \ldots, 12 を配置します。


さて、 1/13 の筆算を計算して、登場するあまりを分析してみましょう。

図のように  1, 10, 9, 12, 3, 4 があまりとして出てきています。したがって、( 1/7 と同様に) 1/13 a = 1, 10, 9, 12, 3, 4 を掛けると  1/13 の循環節をスライドさせたものが得られることが分かります。

また、 1, 10, 9, 12, 3, 4 10, \; 10^2, \; 10^3, \; 10^4, \; 10^5, \; 10^6 \pmod{13} を並べたものだと考えることができます。

つまり、群論的には

 G = (\mathbb{Z}/13\mathbb{Z})^\times = \{ \overline{1}, \; \overline{2}, \; \overline{3}, \; \overline{4}, \; \overline{5}, \; \overline{6}, \; \overline{7}, \; \overline{8}, \; \overline{9}, \; \overline{10}, \; \overline{11}, \; \overline{12} \}

において、 \overline{10} が生成する部分群

 H = \langle \overline{10} \rangle = \{ \overline{1}, \; \overline{10}, \; \overline{9}, \; \overline{12}, \; \overline{3}, \; \overline{4} \}

を考えていることになります。

 H の元  a = 1, 10, 9, 12, 3, 4 1/13 に掛けると、「 1/13 のクラス」に属する循環小数ができるわけですね。

一方で、 G の部分群  H は、 H の全体には一致しません。そのため、 a = 1, 2, 3, \ldots, 12 を全てかけたときに、必ずしも「 1/13 のクラス」の循環小数は得られないということになります。つまり  076923 はダイヤル数ではないというわけです。


 H の元ではない  a = 2 を掛けたときはどのようになるのでしょうか。 2/13 の筆算を考えると分かります。

あまりに着目すると、 2/13 の筆算に出てくるあまりは  2, 7, 5, 11, 6, 8 であり、ちょうど  (\mathbb{Z}/13\mathbb{Z})^\times から  H = \langle \overline{10} \rangle を除いたものがすべて出てきています。


 2/13 1/13 をちょうど2倍したものなので、 2/13 の筆算に出てくるあまりは、 1/13 の筆算に出てくるあまりのすべてを2倍して  \bmod{13} とったものに等しくなります。

 1/13 の筆算に出てくるあまりは  H の元なので、これを  2 倍したものは  \overline{2}H です。これは群論的には剰余類として捉えることができます。

つまり、群  G = (\mathbb{Z}/13\mathbb{Z})^\times の部分群  H = \langle \overline{10} \rangle を考えて、 G H で割って得られる剰余群

 G/H = \{ H, \; \overline{2}H \}

の各剰余類  H, \; \overline{2}H はそれぞれ「 1/13 のクラス」と「 2/13 のクラス」に対応していたというわけです。
(類は英語で "class" なので、まさに「クラス」という言い方がぴったりです。)


なお、剰余類の個数を  H指数といい、 (G : H) で表しますが、

 |G| = |H| \cdot (G : H)

が成り立つというのが、群論におけるラグランジュの定理でした。


今回の場合、 |G| = 12 |H| = 6 (G : H) = 2 であり、ラグランジュの定理はもちろん成り立っています。

循環小数側で考えると、 |H| は循環節の長さで、 (G : H) は循環小数のクラス分けの個数に対応するというわけです。群論の基本定理がこんなところにも現れるというのは面白いですね。


5. 他の循環小数ではどうなっているのか?

 1/7 1/13 を例に議論してきましたが、もっと他の例も考えたくなりますね。


たとえば、

 \displaystyle \frac{1}{\,11\,} = 0.\overline{09}

の場合を考えてみましょう。この場合の循環節の長さは  2 でした。


 1/11 を含む  1/11, \; 2/11, \; 3/11, \; \ldots, \; 10/11 という10個の循環小数を考えると、これらは循環節に出てくる数によって、5つのクラスに分類されます。

これもやはり群論によって説明できます。

 G = (\mathbb{Z}/11\mathbb{Z})^\times \overline{10} が生成する部分群

 H = \langle \overline{10} \rangle = \{ \overline{1}, \; \overline{10} \}

に対して、 G H で割った剰余群

 G/H = \{ H, \; \overline{2}H, \; \overline{3}H, \; \overline{4}H, \; \overline{5}H \}

を考えればよいでしょう。剰余群の各剰余類が、上で挙げた循環小数の各クラスに対応しています。

 (\mathbb{Z}/11\mathbb{Z})^\times の剰余類を図示すると次のようになります:



他にも、 p \neq 2, 5 なる素数  p に対して、 (\mathbb{Z}/p\mathbb{Z})^\times の剰余群として  a/p 形循環小数のクラス分けを行うことができます。ぜひやってみてください。


6. まとめ

今回の記事では、一見単純に見える循環小数の世界に、群論という深遠な数学の視点から迫りました。

 1/7 の例では、 1 \div 7 の筆算に出てくるあまりにおいて  1 から  7 のすべてが登場するという事実が、 (\mathbb{Z}/7\mathbb{Z})^\times \overline{10} で生成されるという群論的な性質に対応することが分かりました。ここから自然に「 142857 はダイヤル数」という性質が導かれるのでした。

また、 1/13 の例では、 (\mathbb{Z}/13\mathbb{Z})^\times の部分群とその剰余類に着目することで、 1/13, \; 2/13, \; \ldots, \; 10/11 の循環節が自然にクラス分けされることが分かりました。
ラグランジュの定理をはじめとする群論の基本定理が、こうしたクラス分けの背景にある数学的な秩序を支えていることを実感できます。

そんなわけで、群論の視点を取り入れることで、循環小数に新しい見方を提供でき、とても面白いということが今回伝えたかったことです。楽しんでいただけましたでしょうか。

それでは今日はこの辺で!

*1:「循環小数の基本原則」という呼び方は、tsujimotterの独自のものなので、他では使わない方が無難です。