■コマ大数学科172講:カレンダー

ブログ更新を怠り、1週間遅れの「たけしのコマ大数学科」

問題:タケシくんは、この3月に毎週1回ずつ合計5回デートします。デートの曜日は、月曜が1回、水曜が2回、土曜が1回、日曜が1回です。タケシくんがデートする日付の数の和はいくつでしょうか?

※カレンダーの日付(デートする日)をクリックする。答えは勝手に計算して出ちゃうけれど、その理由(仕組み)を考えてね。

コマ大数学研究会は、実際の3月のカレンダーを使い検証……と言いたいところだが、〆さばアタルが瞬時にこの問題を解いてしまった。しかし、これでは番組にならない;; そこで、デジカメを手に写真を撮り、コマ大オリジナルのカレンダーを作成した。そのカレンダーをお見せしたいが、「〆さば」ならぬ、画像著作権の侵害に「アタル」ので、ここでは紹介はできない;;

今回は3チームとも正解。マス北野&ポヌさんチームと、東大生チーム(木村美紀&山田茜さん)は、考え方も一緒だった。

東大生チームの考え方

172講(1)

日本のカレンダーは、日曜から始まるのが一般的なので、日曜を基準として考え「0」とおくと、月曜は「+1」、水曜は「+3」、土曜は「+6」になる。基準となる日曜の日付、7×(0+1+2+3+4)=7×10=70と、(1+3+3+6)=13を加えれば、答えは「83」。足し算は順番を変えても答えは一緒になるので、問題の条件を満たす、どのような日付の組み合わせでも、日付の数の和は同じになる。

というわけで、正解は「83」

竹内薫センセの「美しき数学の時間」

1週間は7日なので、7で割った剰余(mod 7)で考えればよい。日曜を起点として「0」とすると、日=0、月=1、水=3、土=6となり、デートは1週間に一度だけ、5週にまたがるので、週の起点の日曜(0+7+14+21+28)=70に、それぞれ、月=1、水=3(2回)、土=6を加えればよい。

ガスコン爺のどーでもいい話

竹内センセは「剰余」という考え方で説明してくれたが、たまたま、2010年の3月は、カレンダーの左上(第1週の日曜)が2月28日で、3月1日が月曜から始まっている。「1 mod 7 = 1」と、たんに日付を7で割った余りが「1」だから月曜になるわけではないからね。誤解しないでね……と余計な心配をする爺であった^^;

でも、「Excel」の場合は、文字どおり、日付を7で割った余りを求めると、曜日がわかる。エクセルで、その日付の曜日を表示するには、たんに書式を設定するだけでいいのだが、「WEEKDAY」関数を使うと、数値で求めることができる。

172講(2)

エクセルの場合、日曜は「1」となる。この「1」を書式設定すると、「日曜日」と表示されるわけだ。「WEEKDAY」関数の代わりに「MOD」関数を使って「7」の剰余を求めてみても、同じ結果を得ることができる。ただし、違いは、「WEEKDAY」関数は「土曜」を「7」とするのに対し、「MOD」関数は、土曜は割り切れてしまうので「0」となる。「0」の場合でも、書式設定すると「土曜」と表示される。(※爺註:WEEKDAY関数の第2引数を「2」とすると、月曜を「1」とすることもできる。その場合は、日曜は「7」となる)。

172講(3)

エクセルで日付の「剰余」を求めると、曜日になるのは、エクセルでは1900年1月1日を「1」として、1日ごとに「1」を足すという「シリアル値」で日付データを管理しているからだ。これを信じると1900年の1月1日は「日曜」ということになるが、じつは大きな間違いで、実際は「月曜」だ。それじゃ、1つずつ全部の曜日が狂っちゃうんじゃないのと思うかもしれないが、エクセルには存在しないはずの「1900年2月29日」が存在している(1900年は閏年ではない)。これで、1900年3月1日以降の日付や曜日は正しく計算されるわけね。

いずれにしても、エクセルでは日付の起点が「1900年1月1日」なので、これ以前の日付を参照するような日付計算はできない。どーしても、過去の日付計算がしたい場合は、自分で計算するしかない。

172講(4)

(※クリックで拡大表示)

というわけで、「ツェラーの公式」を使えば、なんとかなるが、めんどうな計算(手続き)が必要だ。

「Flash」の場合は、どーなんだろうと思い、チェックしてみた。

172講(5)

上記のスクリプトを実行すると、ちゃんと「月」と出力される。大丈夫なようだ。「ツェラーの公式」と同じく、Flashの場合も「getDay()」の戻り値は「0」が「日曜」となるので、配列に「日~土」を入れておけば、「getDay()」の戻り値に対応する曜日を出力してくれる。また、何月かも「0~11」なので、月を指定するときは、実際の月から「1」を引く。現在の「グレゴリオ暦」がスタートした、1582年10月15日を指定すると、「金」と正しい曜日を表示した。この前日は、ユリウス歴で1582年10月4日(木)となるわけね。

≪参考≫
グレゴリオ暦 - Wikipedia

竹内センセの「ちょっといい話」では、13日の金曜日を見つける方法を紹介してくれたが、Flashや、エクセルなどでは、前述のように日付を引数として渡すと、曜日を返す関数が用意されているので、カンタンだ。

「13日の金曜日」が不吉だとするのは、諸説あるようだ。歴史的な背景、宗教観、文化が異なる日本人にとって特段「13日の金曜日」が不吉だとは思わないが、日本人の心にも、なんとなく不吉な感じを植え付けたのは「ジェイソン・ボーヒーズ」の存在だろう。ジェイソンの誕生日は、1946年6月13日らしいのだが、「金曜日」ではなく、「木曜日」とのこと。なんなんだよ~^^;

≪参考≫
ジェイソン・ボーヒーズ – Wikipedia

気を取り直して、月の始めの日の曜日がわかれば、カレンダーを作ることは、さほど、難しいことではない。

※上のFlashは、以前にも紹介したけれど「ActionScript3.0プログラミング入門」という本に収録されている、カレンダーの「Package」を利用させていただいた。

で、ちょっと宣伝になるんだけれど、爺が去年(2009年)に書いたムック「500円でわかる応用エクセル2007」の中で、万年カレンダーの作り方を紹介している。

172講(6)

このエクセル作成記事の売りは、祝祭日、たとえば「春分の日」や「秋分の日」も、エクセルの日付関数を使って、表示している(実際には、「春分の日」や「秋分の日」は、国立天文台が発表する暦象年表に基づいて、前年度の「官報」によって発表される。つまり、翌年の「春分の日」や「秋分の日」は確定されるが、それ以降の年は、定まっていないということ)。

ユリウス暦に比べれば、グレゴリオ暦は精度を増したけれど、3300年後を待たずとも、どこかで自然現象とのズレを解消するため「リセット」されるか、予測を含めた天文学の精度が向上し、新たな「暦」が作られるのか、爺には、さっぱりわからん><;

なんか、話がとっちらかって、しっちゃかめっちゃかになってしまい、落とし所が定まらないけれど、暦の計算は、あまりおもしろ味はないけれど、必要だってことで^^;

※コマネチ大学数学科の「過去問題」はこちらから。
コマ大数学科:2008年度全講義リスト
コマネチ大学数学科:2007年度全講義リスト
コマネチ大学数学科:2006年度全講義リスト


“■コマ大数学科172講:カレンダー” への1件の返信

  1. 更新されて一安心しました。
    さて、私は第一週の何れかの日付に第二週は7、第三週は14をたすと考えました。結局計算式は同じになるのですが・・・
    実はここで大きなミスをしてしまいました。7日の日曜を第一週に加えてしまい、答が90になってしまったのです。(たまたまPC上に欧州某HPが表示されており、そこにあったカレンダー(週は月曜から始まる)を参照してしまったのが原因でした。
    「週の始まりが日曜でも月曜でも結局は同じ筈では?」とも思ったのですが、よく考えたら、例えば、7(日)と8(月)と連日デートが可能となるか等の微妙な違いが出来ることに気付きました。
    この観点から見ると、第一週の日曜の日付が0となることがポイントなんですね。同じ問題を4月でやると、第一週の日~水を日曜から-3、-2、-1、0とすれば同様に計算できます。見方を変えれば、剰余を負で表して考えるのも手なのですね。

コメントは受け付けていません。