[logo] Web連載「数学ガールの秘密ノート」
Share

第471回 シーズン48 エピソード1
カレンダーの秘密(前編) ただいま無料

$ \newcommand{\REMTEXT}[1]{\textbf{#1}} \newcommand{\LEQ}{\leqq} \newcommand{\NEQ}{\neq} \newcommand{\COMMA}{,\,} \newcommand{\VDOTSX}{\,\,\,\vdots} \newcommand{\XxxD}[1]{\textbf{#1}} \newcommand{\SunD}{\XxxD{日}} \newcommand{\MonD}{\XxxD{月}} \newcommand{\TueD}{\XxxD{火}} \newcommand{\WedD}{\XxxD{水}} \newcommand{\ThuD}{\XxxD{木}} \newcommand{\FriD}{\XxxD{金}} \newcommand{\SatD}{\XxxD{土}} \newcommand{\NOTOKI}{\quad\text{のとき}\quad}% $

登場人物紹介

:数学が好きな高校生。

ユーリのいとこの中学生。 のことを《お兄ちゃん》と呼ぶ。 論理的な話は好きだが飽きっぽい。

僕の部屋

ユーリ「お兄ちゃん。クイズだよ。 $1 + 1$ は何になる?」

クイズ

$$ 1+1=\text{?} $$

「$1+1 = 2$ だね。だからこのクイズの答えは $2$ だ」

ユーリ「ふふふ、だよねー」

「え、 $1+1=2$ で話は終わりなの? 引っ掛け問題じゃないんだ」

ユーリ「やだなー、ユーリは引っ掛け問題なんて出しませんぜ」

ここはの部屋。いまは土曜日。

いつものように中学生のユーリが遊びに来ている。

彼女はのことを《お兄ちゃん》と呼ぶけれど、 でもユーリの妹じゃない。 彼女は三歳下のイトコなのだ。

クイズの答え

$$ 1+1=2 $$

「引っ掛け問題じゃなくて、何が言いたかったんだろう」

ユーリ「じゃあ、 $1+8$ は?」

「$1+8=9$ だね」

ユーリ「$1+15=16$ で、 $8+15=23$ で、 $8+22=30$ で……となるよね」

「そうだね。 ユーリの計算が合ってるのはよくわかる。 ユーリが何を言いたいかはまったくわからない」

$$ \begin{xalignat*}{1} 1+1 &=2\\ 1+8 &=9\\ 1+15&=16\\ 8+15&=23\\ 8+22&=30\\ &\VDOTSX \end{xalignat*} $$

ユーリ「これはね、ぜーんぶ

$$ \MonD + \MonD = \TueD $$

なんだよ! すごいっしょ! 月曜日に月曜日を足すと、火曜日になる!

ユーリは得意げにそういうと、今月のカレンダーを指差した。

今月のカレンダー

「ああ、なるほど。ユーリが言いたいことがわかったよ。 $$ 1+1=2 $$ は正しい計算。そして

  • 今月 $1$ 日は月曜日
  • 今月 $2$ 日は火曜日
だから、 $$ \MonD+\MonD=\TueD $$ になってる……そう言いたいんだね」

ユーリ「そ・の・と・お・り! でも $1+1=2$ だけじゃないよん。 $1+8=9$ も、 $1+15=16$ も、 $8+15=23$ も、 $8+22=30$ も、ぜんぶ・ぜーんぶ、 $$ \MonD+\MonD=\TueD $$ になってる!」

$1+8=9$ は $\MonD+\MonD=\TueD$

$1+15=16$ は $\MonD+\MonD=\TueD$

$8+15=23$ は $\MonD+\MonD=\TueD$

$8+22=30$ は $\MonD+\MonD=\TueD$

「そうだね。もちろん、それだけじゃなくて……」

ユーリ「ストーップ! いまはユーリがしゃべっているの!」

「はいはい」

ユーリ「計算できるのは $\MonD+\MonD=\TueD$ だけじゃないよん。 たとえば、 $2+4=6$ とか $16+4=20$ があるから、 $$ \TueD+\ThuD=\SatD $$ になるでしょ?」

$2+4=6$ は $\TueD+\ThuD=\SatD$

$16+4=20$ は $\TueD+\ThuD=\SatD$

「いいねえ! つまりユーリは、こんなふうに日付を曜日ごとにまとめて考えているんだね」

日付を曜日ごとにまとめて考える

ユーリ「そーゆーことさ! そんでもって、 どんなふうに日付を選んでも、ちゃんと曜日ごとにまとまるの! おもしろくね?」

「うん、おもしろいよね! 

  • 今月 $2$ 日は火曜日
  • 今月 $4$ 日は木曜日
  • 今月 $6$ 日は土曜日
  • $2+4=6$ が成り立つ
  • 《日付の足し算》を《曜日の足し算》に移し替える
  • 火曜日から選んだ日を $x$ とする
  • 木曜日から選んだ日を $y$ とする
  • すると、 $x+y$ は必ず土曜日になる
ユーリはそれを、 $$ \begin{array}{cccccccccccccccccccccc} 2 &+ & 4 &= & 6 \\ \updownarrow & & \updownarrow & & \updownarrow \\ \TueD &+ & \ThuD &= & \SatD \end{array} $$ と表したわけだ」

ユーリ「説明ご苦労じゃ」

「偉そうだな」

ユーリ「でも、ゲンミツにはウソあるんだよね」

「何がウソ?」

ユーリ「カレンダーだと今月は $30$ 日までしかない。だから、たとえば、 $$ 9 + 25 = 34 $$ は計算できないっしょ?  $31,32,33,34$ と伸ばしてやればちゃんと土曜日なんだけどね!」

$9+25=34$ は $\TueD+\ThuD=\SatD$($31,32,33,34$ はカレンダーを延長)

「確かに、それはそうだね。 さっきからユーリが話しているのは、 《カレンダーの性質》というよりは、 カレンダーのように《規則的に並んでいる数の性質》だし」

ユーリ「そだね」

「……そうか、 未来に伸ばすだけじゃなくて、 過去に伸ばしてもいいよね」

ユーリ「はにゃ?」

「今月 $1$ 日は月曜日。その一日前は日曜日。 つまり今月 $0$ 日は日曜日ということにする」

今月 $0$ 日は日曜日($0$ はカレンダーを延長)

ユーリ「いーじゃん、いーじゃん……あっ!☆ きらりーん! だったら、 マイナスの方まで行ける! $$ -1\COMMA -2\COMMA -3\COMMA \ldots $$ みたいに、ずっと戻っていけるね!」

「そうだね!」

カレンダーを過去と未来に延長した

ユーリ「すごいすごい! ほら見て! たとえば、 $$ -5 + 18 = 13 $$ のときでもちゃんと、 $$ \TueD+\ThuD=\SatD $$ になってるよ! どんなときでも、 ちゃんと《曜日の足し算》ができるんだね!」

$-5+18=13$ は $\TueD+\ThuD=\SatD$

「証明」しよう

「そうだね。過去と未来に延長したカレンダーで、 《曜日の足し算》はいつでも成り立つ。ユーリのいう通り。 でも、やっぱりそこで、

 証明しょうめいしたくなる

よね!」

ユーリ「しょうめい?」

「うん。 ユーリはいろんなパターンで試したけど、 すべてのパターンで試したわけじゃない」

ユーリ「だって、足し算なんて無限にできるもん」

「そうそう。 だからこそ、証明したくなる。 足し算のパターンは無限にある。その すべてのパターンで《曜日の足し算》がうまくいくことを確かめるんだ」

ユーリ「バシッと?」

「バシッと」

問題

図のように、過去と未来に無限に延長したカレンダーを考える。

二つの曜日を決めて $X$ と $Y$ とする。

  • $X$ 曜日から日付 $x$ を選ぶ。
  • $Y$ 曜日から日付 $y$ を選ぶ。
  • 日付 $x+y$ の曜日を $Z$ とする。

$x$ を $X$ 曜日からどのように選び、 $y$ を $Y$ 曜日からどのように選んでも、 日付 $x+y$ の曜日はいつも $Z$ 曜日になる。

このことを証明してください。

例: $X=\TueD$ として $Y=\ThuD$ とすると $Z=\SatD$ になる。 火曜日からどの日を選び、 木曜日からどの日を選んでも、 それを足した日は必ず土曜日になる。

$$ \begin{array}{ccccccccc} \TueD & + & \ThuD & = & \SatD \\ \updownarrow & & \updownarrow & & \updownarrow \\ -5 & + & 18 & = & 13 \\ 2 & + & 4 & = & 6 \\ 9 & + & 25 & = & 34 \\ & & & \vdots & \end{array} $$

曜日とは何か

ユーリ「無限のパターンを証明するって、どーすんの?」

「そりゃもちろん文字を使うことになるね。 さっきの問題でも、文字を使ったよ。

 「$X$ 曜日から日付 $x$ を選ぶ」

みたいにね。そうすればいちいち具体的に何曜日かいわなくてもいいし、 日付もいわなくていい。その代わりに $X$ と $x$ のように文字を使う。 たとえば、火曜日を考える。 $$ X=\TueD \NOTOKI x=\ldots,-12,-5,2,9,16,23,30,37,\ldots $$ という無数の日付をまとめて扱えることになる」

ユーリ「いま書いたのは全部火曜日の日付だから、ってことだよね?」

「そういうこと。 でも、日付を $x$ という文字にするだけでは何も考えられない。 だからもう少し曜日とは何かを考えることにする」

ユーリ「うーん……」

「たとえば日曜日はわかりやすいよ。 $$ X = \SunD \NOTOKI x=\ldots,-7,0,7,14,21,28,35,\ldots $$ だからね」

ユーリ「わかる。 $7$ の倍数!」

日曜日の日付は $7$ の倍数

「そうだね。 日曜日のところに並んでいる $$ \ldots,-7,0,7,14,21,28,35,\ldots $$ という日付はすべて $7$ の倍数になっていて、 しかも、他の曜日には $7$ の倍数はない。 だから、 $$ X=\SunD \NOTOKI x=7m $$ と書くことができる。 ここで $m$ は整数せいすうだ。つまり、 $$ m = \ldots,-3,-2,-1,0,1,2,3,\ldots $$ ということ」

ユーリ「それ、意味あるの?」

「それって?」

ユーリ「いまお兄ちゃんがやったのって、 $$ X=\SunD \NOTOKI x=\ldots,-7,0,7,14,21,28,35,\ldots $$ を $$ X=\SunD \NOTOKI x=7m $$ にしただけじゃん。それ、意味あるの?」

「もちろん、意味あるよ。 $$ \ldots,-7,0,7,14,21,28,35,\ldots $$ のように無限に並んだ具体的な $7$ の倍数たちを、 $$ 7m $$ という二文字で表している。 これで無限個の数をねじ伏せるんだよ」

ユーリ「んー、それはわかるんだけど、でも結局 $m$ の一文字の方に、 $$ m = \ldots,-3,-2,-1,0,1,2,3,\ldots $$ みたいに無限に並んだ具体的な整数が押し込められてるだけじゃん?」

はうなった。

数学を考えるとき、 当たり前のように文字を使って一般化する。 《文字の導入による一般化》だ。 それは文字を使って無限を取り扱う有効な方法だ。

でもいまユーリが提示した疑問に、 はすぐには答えられなかった。

$7$ の倍数を

  $x=\ldots,-7,0,7,14,21,28,35,\ldots$

と表すことと、

 $x=7m \qquad \text{(ただし$m = \ldots,-3,-2,-1,0,1,2,3,\ldots$)}$

と表すことは、何が違うんだろう。

「……」

ユーリ「お兄ちゃん? ユーリ、なんか変なこと言った?」

「いや、変なことは何も言ってない。 僕がうまく答えられないだけ。 確かに $x = 7m$ と書いたときには、 $m$ の方に無限に並んだ具体的な整数を押し込めている。 ただ、具体的な $7$ の倍数を列挙することよりは $7m$ と書いた方がずっと扱いやすいのは確かだ」

ユーリ「なんで?」

「たぶん、たぶんだけど……あのね、 $$ 7m $$ と表記した方が、 $7$ の倍数が持っている構造こうぞうをうまく表せているんだと思う」

ユーリ「こーぞー? 話、難しくなってきたぞー」

「日曜日の日付は $7m$ と表せた。 それによって月曜日、火曜日、……そして土曜日の日付は次のように表せることがわかる」

各曜日の日付を文字を使って表す

$$ \begin{array}{|c|c|c|c|c|c|c|} \hline \SunD & \MonD & \TueD & \WedD & \ThuD & \FriD & \SatD \\ \hline 7m & 7m + 1 & 7m + 2 & 7m + 3 & 7m + 4 & 7m + 5 & 7m + 6 \\ \hline \end{array} $$ ただし、 $m$ は整数。すなわち $$ m = \ldots,-3,-2,-1,0,1,2,3,\ldots $$ である。

ユーリ「ふむふむ。これはわかる。日曜日の日付が $7m$ なんだから、 月曜日は次の日になって $1$ 足すから $7m+1$ でしょ?」

「そうそう。そこでさらに日曜日を $7m$ じゃなくて $$ 7m+0 $$ と表すことにする。そうすると、とてもうれしい」

ユーリ「お兄ちゃん、ほんとにうれしそうだけど、 $7m = 7m+0$ というのは当たり前じゃないの?」

「当たり前だけど、とてもうれしい。だって、すべての日付は、 $$ \begin{array}{|c|c|c|c|c|c|c|} \hline \SunD & \MonD & \TueD & \WedD & \ThuD & \FriD & \SatD \\ \hline 7m + 0 & 7m + 1 & 7m + 2 & 7m + 3 & 7m + 4 & 7m + 5 & 7m + 6 \\ \hline \end{array} $$ と表せるようになったから。 ここで注目するのは、僕たちは《曜日番号》を手に入れたということ」

ユーリ「ははーん。 $7m + 0$ の $0$ のこと?  $0$ が日曜日の番号?」

「そういうことだね。 すべての日付は、 $$ 7m + r $$ と表せる。ここで $m$ は整数で、 $r$ は $$ r = 0,1,2,3,4,5,6 $$ とする。この $r$ が《曜日番号》だ」

ユーリ「$0$ が日曜日、 $1$ が月曜日……ってこと」

「僕がさっき言いかけた《構造》というのはこれだよ。日付は $$ 7m + r $$ という形で表せて、 $m$ は整数で、 $r$ は《曜日番号》になっている。 具体的な数を列挙した方がわかりやすそうだけど、 《文字 $r$ が曜日を表す》という意味では $7m + r$ の方がわかりやすい」

ユーリ「$r$ が何を表しているかわかっていればねー」

「まさに、そうだよ!」

ユーリ「うわびっくりした。急におっきな声出さないで!」

「ごめんごめん。数学では文字がよく出てくる。 新しい文字が出てきたときには、 必ず、必ず、必ず、その文字は何を表しているかを確かめなくちゃいけないんだ」

ユーリ「急激に先生モードに突入したぞー」

「茶化すなよ。大事な話」

ユーリ「へいへい。それより証明しよーよ」

「そうだね。 ここまでで、僕たちは《日付を $7m + r$ という形で表す》というところまで来た。 これを使うと《二つの日付が同じ曜日かどうか》も調べることができる」

ユーリ「へえ……」

「じゃあ、クイズだよ」

クイズ

二つの日付 $a$ と $b$ があって、 $$ \begin{cases} a &= 7m + r \\ b &= 7m' + r' \end{cases} $$ と表せたとする。

$m$ と $m'$ は整数で、 $r$ と $r'$ は曜日番号とする。 このとき、 日付 $a$ と $b$ が同じ曜日かどうかを調べたいとき、どうするか?

ユーリ「同じ曜日かどうかを調べたいんだったら、 $r$ と $r'$ を比べる?」

「正解!  $r = r'$ なら $a$ と $b$ は同じ曜日。 $r \NEQ r'$ なら $a$ と $b$ は違う曜日」

ユーリ「ふふん!」

「そこでもう少し考えてみる。 $r = r'$ ということは $r - r' = 0$ ということだから……

  • $a - b$ が $7$ の倍数なら同じ曜日である。
  • $a - b$ が $7$ の倍数じゃないなら違う曜日である。
……ということになる」

ユーリ「ふむふむ?」

「こんなふうに式変形すればはっきりするよ。 $$ \begin{xalignat*}{2} a - b &= (7m + r) - (7m' + r') \\ &= 7(m - m') + (r - r') \end{xalignat*} $$ これで $7(m-m')$ のところは $7$ の倍数で、 $r$ と $r'$ は $0,1,\ldots,6$ のどれかだから、 差が $7$ の倍数になるのは $r = r'$ のときしかない」

ユーリ「えっ? 最後のところわかんなかった」

「$r = 0,1,2,3,4,5,6$ で $r' = 0,1,2,3,4,5,6$ で考えると、 $r - r'$ はどうがんばっても $-6 \LEQ r - r' \LEQ 6$ の範囲だよね。 このうち $7$ の倍数は $0$ しかない」

ユーリ「ああ……わかった」

「同じ曜日かどうかを調べるには日付の差が $7$ の倍数かどうかを調べればいい」

ユーリ「ほほー!」

「これで僕たちは、 さっきの問題の心臓部分を考えることができる」

問題の心臓部分

日付 $x$ を $X$ 曜日からどのように選び、 日付 $y$ を $Y$ 曜日からどのように選んでも、 日付 $x+y$ の曜日はいつも $Z$ 曜日になる……ことを証明せよ。

ユーリ「式を使って表す……とは?」

「曜日は $\SunD,\MonD,\TueD,\ldots,\SatD$ みたいな言葉じゃなくて、曜日番号を使って $0,1,2,\ldots,6$ で表せる。 $X$ 曜日の曜日番号を $X$ として、 $Y$ 曜日の曜日番号を $Y$ とする。 それぞれ選んだ日付 $x$ と $y$ は次のように $m,n,X,Y$ という $4$ 個の文字で表すことができる」

$$ \begin{cases} x &= 7m + X && \REMTEXT{$m$は整数、$X = 0,1,2,3,4,5,6$} \\ y &= 7n + Y && \REMTEXT{$n$は整数、$Y = 0,1,2,3,4,5,6$} \\ \end{cases} $$

ユーリ「にゃるほど」

「それから同じく $X$ 曜日と $Y$ 曜日からそれぞれ別の日付 $x'$ と $y'$ を選んだとしよう。曜日番号は $X$ と $Y$ だよ」

$$ \begin{cases} x' &= 7m' + X && \REMTEXT{$m'$は整数、$X = 0,1,2,3,4,5,6$} \\ y' &= 7n' + Y && \REMTEXT{$n'$は整数、$Y = 0,1,2,3,4,5,6$} \\ \end{cases} $$

ユーリ「それで?」

「僕たちは、日付 $x+y$ と日付 $x'+y'$ が同じ曜日かどうかを調べたい。同じ曜日かどうかを調べる方法は?」

ユーリ「引き算?」

「そうだね。引き算して $7$ の倍数かどうかを調べると…… $$ \begin{xalignat*}{2} (x+y) - (x'+y') &= ((7m+X)+(7n+Y)) - ((7m'+X)+(7n'+Y)) \\ &= (7(m+n)+(X+Y)) - (7(m'+n') + (X+Y)) \\ &= 7(m+n-m'-n') + (X+Y) - (X+Y) \\ &= 7(m+n-m'-n') \end{xalignat*} $$ ……となる。 $7(m+n-m'-n')$ は $7$ の倍数だから、 確かに同じ曜日になる。これで証明ができた」

解答

曜日番号を $\SunD = 0,\MonD = 1,\ldots,\SatD = 6$ と定めると、 すべての日付は $7m + r$ と表せる($m$ は整数で $r$ は曜日番号)。

$X$ 曜日から日付 $7m+X$ を選び、 $Y$ 曜日から日付 $7n+Y$ を選び、 和の日付を $a$ とすると $a = 7(m+n) + (X+Y)$ である。

$X$ 曜日から日付 $7m'+X$ を選び、 $Y$ 曜日から日付 $7n'+Y$ を選び、 和の日付を $b$ とすると $b = 7(m'+n') + (X+Y)$ である。

日付 $a$ と日付 $b$ の差を取ると、 $$ a - b = 7(m+n-m'-n') $$ と $7$ の倍数になるので、 $a$ と $b$ は同じ曜日である。

ユーリ「……」

「できたね。わかった?」

ユーリ「わかったけど、めんどくさい!」

「どのへんがめんどくさい?」

ユーリ「何だか、当たり前のことを長々とやってるみたい。 カレンダー見て、二つの日付が縦に並んでいたら《同じ曜日》ってすぐにわかるのに、 《引き算して $7$ の倍数かどうか調べる》のがめんどくさい」

「確かにね。 《日付は違う》けれど《曜日は同じ》というのが話をややこしくしているわけだ」

ユーリ「でもね、でもね。そこがおもしろいんだよ。 同じ曜日だったらどの日付を選んでも、 曜日の足し算ができるとこ!」

「めんどくさがりなユーリにぴったりの書き方があるよ」

ユーリ「なになに?」

合同式ごうどうしきだよ。合同式を使うと、 《曜日が同じ》であることをめちゃめちゃすっきり書けるんだ。 たとえば、日付 $2$ と日付 $16$ が同じ曜日であることを、 $$ 2 \equiv 16 \pmod 7 $$ と書ける!」

ユーリ「ごーどーしき?」

「そう。便利だよ!」

ユーリ「そんなに便利なんだったら、先にそれを教えてよね!」

「ごもっとも……」

この記事は期間限定で「ただいま無料」となっています。

ひと月500円で「読み放題プラン」へご参加いただきますと、 470本以上の記事がすべて読み放題になりますので、 ぜひ、ご参加ください。


参加済みの方/すぐに参加したい方はこちら

結城浩のメンバーシップで参加 結城浩のpixivFANBOXで参加

(第471回終わり)

(2026年6月26日)

[icon]

結城浩(ゆうき・ひろし) @hyuki


『数学ガール』作者。 結城メルマガWeb連載を毎週書いてます。 文章書きとプログラミングが好きなクリスチャン。2014年日本数学会出版賞受賞。

Twitter note 結城メルマガ Mastodon Bluesky Threads Home