中学数学に出てくるカレンダー問題の解き方とプログラミングへの応用法を解説します。
【カレンダー問題】
今日が日曜日のとき、100日後は何曜日になるでしょうか?
これが基本となるカレンダー問題です。
10日後なら指で数えることもできますが、100日後だと大変ですよね。
これを数学的に解いてみましょう。
こうした問題は規則性を見つけることが大切です。
問われているのは曜日ですよね。
今日が日曜なら、1日後は月曜日、2日後は火曜日…。
それぞれの曜日は何日後にあたるかを書き出してみます。
月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | 土曜日 | 日曜日 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
規則性がわかりやすいのは日曜日ですよね。
7、14、21と7の倍数になっています。
他の曜日は、どうでしょうか?
眺めていても、知らないと浮かんでこないかもしれません。
他の曜日は7で割ったときのあまりが曜日ごとに同じになっています。
月曜日は1,8,15ですよね。いずれも7で割ると、あまり1です。
火曜日は2,9,16です。こちらは7で割ると、あまり2です。
水曜日は3,10,17です。7で割ったあまりは3です。
上の表に加えてみます。
月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | 土曜日 | 日曜日 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
7で割ったあまりは… | ||||||
1 | 2 | 3 | 4 | 5 | 6 | 0 |
どこまでもこの規則性は続きます。
ということは、100を7で割れば、そのあまりから何曜日かがわかることになります。
100÷7=14あまり2です。
よって、100日後は火曜日となります。
答え.火曜日
この知識はプログラミングの中でも、よく使われます。
例えば、A、B、Cの3つのパターンを用意しておく。
ランダムに数字を発生させて、その数字を3で割る。
といったプログラムを組んで、A,B,Cパターンを表示させることなどに使われます。
参考にしてみてください。