
中学受験でたまに見かけるカレンダー算について思うところがある。
内容は手品の一種のようなものだが、話のタネに。
一発芸に困ったら、どうぞ
映画「サマーウォーズ」の主人公が先輩:夏希と電車の中に乗っているシーン。自分が数学オリンピックの惜しいところまで行ったという話をした後に彼女から「何かやって見せてよ」と無茶ぶりされる。
その時、主人公が夏希の誕生日を聞いてその日の曜日を即答する。
手品のつもりだったのかもしれないが、夏希には余り受けなかった。
モジュロ演算について、ざっくりと
さて、主人公はどうして曜日を言い当てることができたのか。主人公は「モジュロ演算」と答える。合同式と考えても良い。
自然数を自然数で割ると、商と余りが出る。
10を7で割ると、1が商で3が余りだ。
17を7で割ると、2が商で3が余りだ。
モジュロ演算はこの余りに注目をする。余りが同じ数を「○○を法としたとき、10と17は合同」等という言い方をする。
数式で書くと、10≡3 mod 7 とか、17≡3 mod 7などのように書く。
合同の考え方はカレンダーの話が一番わかりやすいだろう。
今年の5月3日は木曜日だ。5月10日、5月17日、5月24日、5月31日全て木曜日だ。
計算を高速化するための知識
だが、これだけを知っていても計算の高速化はまだできない。
計算の高速化をするには、他にもカレンダーの性質を幾つか頭に入れておく必要がある。
絶対におさえておかなければならないのは、うるう年の存在だ。
うるう年というのは、2月の日数が29日になる年のことだ。うるう年でない年は28日である。
うるう年かそうでないかを決めるのは「西暦」の値によって決まる。
・西暦が4で割り切れる年はうるう年である。
・ただし、西暦が100で割り切れるが400で割り切れない年は平年である。
平年の1年の日数は365日、うるう年の1年の日数は366日だ。
7を法として考えると、平年は1日、うるう年は2日だ。
次におさえておきたいのは「月」の性質だ。
実は、1月から12月で「日」と「曜日」が全く同じ月があるのだがご存じだろうか。
各月の初めの日、1日の曜日が同じ月がポイントだ。
平年では
- 1月と10月
- 2月と3月と11月
- 4月と7月
- 9月と12月
- 5月と6月と8月は無し
というグループが同じ曜日になる。今年や去年の月で確認してみると良い。曜日は7種類なのだから、このグループ分けも7種類以下に分かれる。
曜日順に並び替えると
- 1月と10月
- 5月
- 8月
- 2月と3月と11月
- 6月
- 9月と12月
- 4月と7月
1月1日が月曜日であれば、5月1日は火曜日、8月1日は水曜日、2月1日は木曜日、6月1日は金曜日、9月1日は土曜日、4月1日は日曜日となる。
1月1日が木曜日ならば、5月1日は金曜日・・・と曜日がずれるという仕組みになっている。
そして、うるう年では
- 1月と4月と7月
- 2月と8月
- 3月と11月
- 9月と12月
- 5月と6月と10月は無し
曜日順に並べ替えると
- 1月と4月と7月
- 10月
- 5月
- 2月と8月
- 3月と11月
- 6月
- 9月と12月
もっと、面白い工夫があるかもしれないがこういう性質を覚えて後は練習で、映画冒頭のような真似事は実際に可能だ。
後は練習あるのみ
さて、試しに幾つかの例題を解いてみよう。
2018年1月1日は月曜日である。次の日付の曜日を求めよ。
(1)2018年12月31日
(2)2000年1月1日
(3)1945年8月15日
回答
(1)2019年1月1日は2018年が365日であることから365≡1 mod 7なので、火曜日。1日前の2018年12月31日は月曜日。
(2)1年は365日なので、1年経つごとに1月1日の曜日は1ずつずれていく。2000年から2018年までは18年なので、18のずれがある。また、2000年から2018年までのうるう年の回数は5回(2000年もうるう年)なので、2018年1月1日は、2000年1月1日から23(18+5)ずらした曜日になっている。23≡2 mod 7なので、2018年1月1日が月曜日であることから2日前に戻せば土曜日となる。
(3)1945年1月1日から2018年1月1日までは73年ある為、73のずれがある。さらに、うるう年が18回あるので合計91のずれがある。91≡0 mod 7であるため、1945年1月1日と2018年1月1日は同じ月曜日である。1月1日が月曜日であるなら、8月1日は水曜日である。よって、2週間後の1945年8月15日は水曜日。