tsujimotterのノートブック

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

群論的に干支を考える:十二支と十干はなぜ60年で戻るのか?

みなさん明けましておめでとうございます!

年が明けたということで、みなさん今年の干支はご存知ですか?


そうです

壬寅(みずのえとら)

ですね!!


「え、寅年でしょ?」と思った方。もちろんそれで正解なんですが、少しだけ話を聞いてください。

実は、干支といったときには単に

子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥

十二支 だけではなく、十干(じっかん)

甲・乙・丙・丁・戊・己・庚・辛・壬・癸

も合わせて考えることがあるのです。


十干と十二支を順に並べて今年の干支といいます。

今年2022年は、十干が「壬(みずのえ)」で、十二支が「寅(とら)」なので、干支は「壬寅(みずのえとら)」というわけですね。
(もちろん実際問題として、単に十二支だけで干支と行ってしまう場合もあると思います。)


ところで、この干支のルール、なかなか面白いのです。

十干は10種類と十二支は12種類あるということで、干支は120種類あるのかと思いきや、なんとその半分の

60種類

しかありません。つまり、60年で元の干支に戻ってしまうのです。

このように、60年で元の干支に戻ってくるので、60歳の誕生日に還暦を祝ったりするわけですね。



もう少し詳しくルールを説明します。今年2022年は

壬寅

だったわけですが、来年2023年は

癸卯

となります。つまり、十干も十二支もそれぞれ1つずつ進める わけです。

この先は

壬寅  \rightarrow 癸卯  \rightarrow 甲辰  \rightarrow 乙巳  \rightarrow \cdots

のように進んでいきます。


このルールに従うと、120通りすべて通るわけではなく、半分の60通りの組み合わせしか登場しないことになります。たとえば、今年の干支の十干を一個ずらした

癸寅

は登場しないことになります。



60通りの組み合わせしか登場しないメカニズムについては、鰺坂もっちょさんのツイートがたいへんわかりやすいのでご紹介させていただきます。

実は、今回の記事はこちらのツイートがインスパイア元になっています。



さて、ここからが本題です。

上記のもっちょさんのアニメーションで、仕組みはよく理解できるかと思います。しかしながら、もっと別のやり方でこのことを理解できないかと考えました。

群論 を使うと、干支が60年で元に戻る仕組みを理解できることを思いついたので、今回の記事を書くことにしました。よろしければぜひ最後までご覧になってください!

f:id:tsujimotter:20220111183432p:plain:w400


目次:

 
 
 

干支を群論で表現する

まず、干支の十干と十二支を数学的に表現し直すことから始めたいと思います。

簡単に思いつくのは、十干と十二支のそれぞれの要素に番号をつけることでしょう。つまり

十干: 甲 (0)・乙 (1)・丙 (2)・丁 (3)・戊 (4)・己 (5)・庚 (6)・辛 (7)・壬 (8)・癸 (9)
十二支: 子 (0)・丑 (1)・寅 (2)・卯 (3)・辰 (4)・巳 (5)・午 (6)・未 (7)・申 (8)・酉 (9)・戌 (10)・亥 (11)

とするわけです。(1からではなく、0から番号を振るのがポイント。)


このような集合を考えるときには  \mathbb{Z}/m\mathbb{Z} を考えるのが便利です。

 \mathbb{Z}/m\mathbb{Z} は「 m で割ったあまり全体の集合」です。つまり、整数を  m で割ったあまりは  0 から  m-1 のいずれかになるので

 \mathbb{Z}/m\mathbb{Z} = \{ 0, 1, 2, 3, \ldots, m-1 \}

というわけです。

これを用いると、十干と十二支はそれぞれ次のように表せます:

  • 十干:  \mathbb{Z}/10\mathbb{Z} = \{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 \}
  • 十二支: \mathbb{Z}/12\mathbb{Z} = \{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 \}


これで私たちは、十干と十二支の数学的な表現を手に入れました。


ところで、 \mathbb{Z}/m\mathbb{Z} という集合には 加法( + の演算を考えることができ、加法について群をなします。

具体的には、 \mathbb{Z}/12\mathbb{Z} なら

 1 + 1 = 2, \;\; 2 + 1 = 3, \; 3 + 1 = 4

のような演算が成り立ちます。まるで整数のようですが、整数と異なるのは

 11 + 1 = 0

の計算ですね。12時間時計のように一周したら元に戻ってくるのです。

 0 から初めて  +1 を繰り返し行うことで得られる要素全体を  \langle 1 \rangle と表し「 1 の生成する部分群」といいます。これが  \mathbb{Z}/12\mathbb{Z} に一致するので

 \mathbb{Z}/12\mathbb{Z} = \langle 1 \rangle

が成り立つわけです。このように1つの要素によって生成される群を 巡回群 といいます。

当然 \mathbb{Z}/10\mathbb{Z} = \langle 1 \rangle なので、 \mathbb{Z}/10\mathbb{Z} も巡回群です。


これは十干や十二支を考える上でぴったりの性質です。つまり1年経つごとに十干と十二支が動く様子が、 \mathbb{Z}/12\mathbb{Z} \mathbb{Z}/10\mathbb{Z} においてそれぞれ  +1 する操作に対応するというわけです。



今回考えたいのは、十干と十二支の組み合わせですが、ぴったりな概念が 直積 です。

 \mathbb{Z}/10\mathbb{Z} \mathbb{Z}/12\mathbb{Z} の直積は

 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z}

と表します。この集合は、 \mathbb{Z}/10\mathbb{Z} から要素  a \mathbb{Z}/12\mathbb{Z} から要素  b を取り出し、そのペアを  (a, b) と表したとき、この任意の  (a, b) 全体を要素に持つ集合です。

つまり、 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} は、次の120個の要素を持つ集合です。

 (0, 0), \; (0, 1), \; (0, 2), \; (0, 3), \; (0, 4), \; (0, 5), \; (0, 6), \; (0, 7), \; (0, 8), \; (0, 9), \; (0, 10), \; (0, 11)
 (1, 0), \; (1, 1), \; (1, 2), \; (1, 3), \; (1, 4), \; (1, 5), \; (1, 6), \; (1, 7), \; (1, 8), \; (1, 9), \; (1, 10), \; (1, 11)
 (2, 0), \; (2, 1), \; (2, 2), \; (2, 3), \; (2, 4), \; (2, 5), \; (2, 6), \; (2, 7), \; (2, 8), \; (2, 9), \; (2, 10), \; (2, 11)
 (3, 0), \; (3, 1), \; (3, 2), \; (3, 3), \; (3, 4), \; (3, 5), \; (3, 6), \; (3, 7), \; (3, 8), \; (3, 9), \; (3, 10), \; (3, 11)
 (4, 0), \; (4, 1), \; (4, 2), \; (4, 3), \; (4, 4), \; (4, 5), \; (4, 6), \; (4, 7), \; (4, 8), \; (4, 9), \; (4, 10), \; (4, 11)
 (5, 0), \; (5, 1), \; (5, 2), \; (5, 3), \; (5, 4), \; (5, 5), \; (5, 6), \; (5, 7), \; (5, 8), \; (5, 9), \; (5, 10), \; (5, 11)
 (6, 0), \; (6, 1), \; (6, 2), \; (6, 3), \; (6, 4), \; (6, 5), \; (6, 6), \; (6, 7), \; (6, 8), \; (6, 9), \; (6, 10), \; (6, 11)
 (7, 0), \; (7, 1), \; (7, 2), \; (7, 3), \; (7, 4), \; (7, 5), \; (7, 6), \; (7, 7), \; (7, 8), \; (7, 9), \; (7, 10), \; (7, 11)
 (8, 0), \; (8, 1), \; (8, 2), \; (8, 3), \; (8, 4), \; (8, 5), \; (8, 6), \; (8, 7), \; (8, 8), \; (8, 9), \; (8, 10), \; (8, 11)
 (9, 0), \; (9, 1), \; (9, 2), \; (9, 3), \; (9, 4), \; (9, 5), \; (9, 6), \; (9, 7), \; (9, 8), \; (9, 9), \; (9, 10), \; (9, 11)


直積  \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} は単に集合なだけではなく、演算  + を持つ加法群 でもあります。具体的には、 (4, 2) という要素と  (1, 1) という要素の和は

 (4, 2) + (1, 1) = (5, 3)

と表されます。つまり、各成分同士を単純に足し合わせるような演算というわけですね。



このように定義しておくと、干支が変わっていくルールがすっきり説明できます。

すなわち

壬寅  \rightarrow 癸卯  \rightarrow 甲辰  \rightarrow 乙巳  \rightarrow \cdots

というルールは、直積  \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} においては

 (8, 2) \rightarrow (9, 3) \rightarrow (0, 4) \rightarrow (1, 5) \cdots

というルールに置き換わります。つまりこれは  (1, 1) を次々に足していくルール というわけですね。


結果的には、 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} において  (0, 0) からスタートして、 (1, 1) を次々に足していくと、 60 回で  (0, 0) に戻ってきます。すべてを回るわけではないというわけです。

群論的に言えば、 (1, 1) が生成する  \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} の部分群が、位数60の巡回群になるというわけですね。

 \langle (1, 1) \rangle \; \subset \; \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z}



このようにして「干支が60年で元に戻ること」を群論的に表現し直すことができました。


せっかく群論的に表現したので、ここから先は群論の知識を用いて「 \langle (1, 1) \rangle の位数が60であること」を示してみたいと思います。(群の要素数のことを「位数(いすう)」といいます。)

これには 中国剰余定理 という定理が使えます。


中国剰余定理

中国剰余定理とは、特定の条件をみたす巡回群と巡回群の直積が巡回群と同型になるという形の定理です。

定理(中国剰余定理)
正の整数  m が、互いに素な正の整数  a, b によって  m = ab と表せるとする。このとき、次は同型写像である:
 \begin{align} \phi \colon \mathbb{Z}/m\mathbb{Z} \;  &\longrightarrow \;\;\; \mathbb{Z}/a\mathbb{Z} \; \times \; \mathbb{Z}/b\mathbb{Z} \\
x \;\;\;  \; &\longmapsto \; (x\bmod{a}, \; x\bmod{b}) \end{align}

同型写像があるとき、(両辺の群は)同型であるといい

 \mathbb{Z}/m\mathbb{Z} \; \simeq \; \mathbb{Z}/a\mathbb{Z} \; \times \; \mathbb{Z}/b\mathbb{Z}

と書きます。

 x\bmod{a} は「 x a で割った余り」を意味します。同型写像とは「準同型写像」かつ「全単射」を意味します。

簡単に言ってしまえば、この写像によって左右の要素同士が1対1にぴったり対応するというわけですね。

全単射ということは、逆の写像も作れるわけです。 \mathbb{Z}/a\mathbb{Z} \times \mathbb{Z}/b\mathbb{Z} から  (z, w) をとってきたら

 x a で割った余りが  z
 x b で割った余りが  w

であるような  x がただ1つ取れます。ここで  (z, w) \longmapsto x という対応が逆写像になるわけです。


たとえば、十干  \mathbb{Z}/10\mathbb{Z} 10 = 2\times 5 と表せますので

 \mathbb{Z}/10\mathbb{Z} \; \simeq \; \mathbb{Z}/2\mathbb{Z} \; \times \; \mathbb{Z}/5\mathbb{Z}

が成り立ちます。

 \mathbb{Z}/10\mathbb{Z} から  4 をとってくると

  •  4 2 で割った余りが  0
  •  4 5 で割った余りが  4

なので、 4 \longmapsto (0, 4) が順方向の写像の行き先となります。

逆に、  \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} から  (0, 4) をとってくると、今と逆の手順により  \mathbb{Z}/10\mathbb{Z} から  4 がとれます。よって  (0, 4) \longmapsto 4 が逆写像の行き先ということになります。



中国剰余定理においては、 a, b が互いに素である という条件が大事で、 a, b が互いに素でなければ同型にはなりません。たとえば

 \mathbb{Z}/4\mathbb{Z} \; \not\simeq \; \mathbb{Z}/2\mathbb{Z} \; \times \; \mathbb{Z}/2\mathbb{Z}

です。

これは、右辺のどの要素をとってきても全体を生成しない(つまり巡回群ではない)ことからわかります。



なぜ60年で戻るのか?

元の問題に戻ると、 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} において  \langle (1, 1) \rangle の位数が知りたいのでした。

そこで、中国剰余定理を用いて、 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} を別の同型な群に置き換えることを考えましょう。


先ほど例に挙げた同型  \mathbb{Z}/10\mathbb{Z} \; \simeq \; \mathbb{Z}/2\mathbb{Z} \; \times \; \mathbb{Z}/5\mathbb{Z} を用いると

 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} \; \simeq \; \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z}

が成り立ちます。


さらに、 5 12 が互いに素なので、 \mathbb{Z}/60\mathbb{Z} \simeq \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} を用いて

 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} \; \simeq \; \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/60\mathbb{Z}

が言えます。

これで、調べたい群を別の同型な群に表現し直すことができました。


右辺の群  \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/60\mathbb{Z} に着目すると、たとえば  (0, 1) という要素を繰り返し足すと

 (0, 1) \longmapsto (0, 2) \longmapsto (0, 3) \longmapsto \; \cdots \; \longmapsto (0, 59) \longmapsto (0, 0)

となり60回で  (0, 0) に戻ってきます。つまり位数60の部分群を生成するわけです。

他にも  (1, 1) という要素も

 (1, 1) \longmapsto (0, 2) \longmapsto (1, 3) \longmapsto \; \cdots \; \longmapsto (1, 59) \longmapsto (0, 0)

となりますので、同じく位数60の部分群を生成します。


したがって、同型

 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} \; \simeq \; \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/60\mathbb{Z}

によって、左辺の  (1, 1) がこのような要素に移るのであれば、 (1, 1) の生成する部分群も位数60であることが言えるわけです。


実際、同型写像を順に辿っていくことで、次のように示されます。

 (1, 1) は同型写像

 \begin{align} \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} &\longrightarrow \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} \\
(x, y) \;\;\;\;\;\; &\longmapsto \; (x\bmod{2}, \; x\bmod{5}, \; y) \end{align}

によって  (1, 1) \longmapsto (1, 1, 1) に移されます。


さらに  (1, 1, 1) は同型写像

 \begin{align} \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} &\longrightarrow \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/60\mathbb{Z} \\
(x, y, z) \;\;\;\;\;\;\;\;\;\; &\longmapsto \;\;\;\;\;(x, w) \end{align}
(ただし、 w y = w\bmod{5}, \; z = w\bmod{12} を満たす数)

によって、 (1, 1, 1) = (1, 1) に移されます。


以上によって、 \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} (1, 1) は、同型写像を通して  \mathbb{Z}/2\mathbb{Z} \times \mathbb{Z}/60\mathbb{Z} (1, 1) に移ることが示されました。

これは位数60の部分群を生成するので、元々の  \langle (1, 1) \rangle \subset \mathbb{Z}/10\mathbb{Z} \times \mathbb{Z}/12\mathbb{Z} は位数60であることが示されました。


すなわち、干支は60年で元に戻ることが示されました。やりましたね!


おわりに

今回は「干支はなぜ60年で戻るのか?」を問題を、群論を使って解決してみました!

冒頭に紹介したようにこの問題は群論を持ち出さずとも考えることはできますが、「こんな見方もあるよ」というような話を紹介させていただきました。「群論ちょっと面白そうだな」と思っていただくきっかけになれば幸いです。


群論はたとえばこういう本で学ぶことができます。

他にも良い本はたくさんありますので、まずは自分の手に届きそうなものを選ぶと良いかと思います。


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