平成11年11月9日

[流れ星]

    第35回数学的な応募問題

 <解答募集期間:11月6日〜11月20日>

[グレゴリオ暦]

 

 太郎さんは、「グレゴリオ暦」(西暦年号)を調べている中で、歴史上の空白の11日間があることに気が付きました。ユルウス暦は1582年10月4日(木曜日)までで、明くる日はグレゴリオ暦の1582年10月15日(金曜日)になっています。(ある本では10月12日の夜までと、朝起きて10月25日という出来事と書いてありました)

そこで、今回の問題です。西暦2000年1月1日は土曜日です。

問題1:西暦2100年、西暦2200年、西暦2300年、西暦2400年、

    西暦2500年の1月1日は何曜日ですか。

問題2:西暦2000年から400年までの毎年の1月1日は何曜日になっているか、

    その回数を求めてください。

問題3:西暦の年数の下2桁が00である年(各世紀の最後の年)の1月1日は何曜日か

    調べていくと、決して起こらない曜日があります。この曜日を求めてください。

 <参考文献>:パズルより面白い中学入試の算数から一部改題(ピーター・フランクル):講談社 

 太郎さんは、電算部にある万年カレンダーで調べてもらおうと思っています。

 

 <sambaGREEN>さんからの解答 6日午前1時受信 9日更新

Excel使って,答えを先に出して(所要時間10分位)から考えました。この手の問題は間違っても,結果からは気づきませんから,正直言って,暦算は嫌いなんですが(笑)

問題1:平年は365日ですから,曜日は1つ進みますが,閏年の翌年は曜日が2つ進みます。4年後には5つ進むことになります。

100÷4=25 25×5≡6(mod7)となり,100年後には曜日は1つ戻ります。

しかし,2×00年が閏年でないとき,100年後は2つ戻ります。 

西暦2100年・・・金曜日,西暦2200年・・・水曜日,西暦2300年・・・月曜日

西暦2400年・・・土曜日,西暦2500年・・・金曜日    

問題2:計算しやすいように,2001年から2100年の100年で計算します。

日=1,月=2,火=3,水=4,木=5,金=6,土=7とすると,

7と4の公倍数28年周期(2345712356713456123467124567)で曜日は変わります。

この周期には4回ずつ現れ,100÷28=3あまり16で,16の中には3と5(2番目と4番目に注意)が3回,他は2回あらわれます。したがって,3と5が15回,その他が14回ということになります。

2101年から2200年は(7123567134561234671245672345)の周期で,

15回あるのは2番目と4番目の1と3。

同様にして,2201年から2300年は 1と6が2回。2301年から2400年は 4と6が2回

従って1が58回,2が56回,3が58回,4が57回,5が57回,6が58回,7が56回

西暦2000年の7を加えて,

日曜58回,月曜56回,火曜58回,水曜57回,木曜57回,金曜58回,土曜57回

問題3:問1の結果から,土,金,水,月,で繰り返し,日,火,木曜日は,あり得ない。

コメント:400年周期で曜日は繰り返しますから,日曜,火曜,金曜が多く,月曜,土曜が少ないわけですね。 

<浜田 明巳>さんからの解答 6日午後4時受信 9日更新

 第35回数学的な応募問題[グレゴリオ歴]今回はQbasicで解いて見ました.やっつけ仕事で正解だといいんですが.この頃ペースが早くて大変です.皆さんすごいですね.

問題1:2100 金,  2200 水,  2300 月,  2400 土,2500 金

問題2:日58,月56,火58,水57,木57,金58,土57

問題3:日,火,木

'gregorio.bas

CLS : DIM day$(6), kaitou2(6), kaitou3(6)

day$(0) = "SUN": day$(1) = "MON": day$(2) = "TUE": day$(3) = "WED"

day$(4) = "THU": day$(5) = "FRI": day$(6) = "SAT"

FOR j = 0 TO 6: kaisuu(j) = 0: NEXT: wa = 365 MOD 7

PRINT "Q1"

FOR year = 2000 TO 30000

IF year = 2000 THEN

youbi = 6

ELSEIF (year - 1) MOD 4 > 0 OR ((year - 1) MOD 100 = 0 AND (year - 1) MOD 400 > 0) THEN

youbi = (youbi + wa) MOD 7

ELSE

youbi = (youbi + wa + 1) MOD 7

END IF

IF year MOD 100 = 0 AND year > 2000 AND year < 2600 THEN

PRINT year; day$(youbi)

END IF

IF year <= 2400 THEN kaitou2(youbi) = kaitou2(youbi) + 1

IF year MOD 100 = 0 THEN kaitou3(youbi) = kaitou3(youbi) + 1

IF year = 2500 THEN

PRINT "Q2": FOR j = 0 TO 6: PRINT day$(j); kaitou2(j); " "; : NEXT: PRINT

END IF

NEXT

PRINT "Q3"

FOR j = 0 TO 6: IF kaitou3(j) = 0 THEN PRINT day$(j); " ";

NEXT: PRINT

END

<Jun>さんからの解答 7日午後9時受信 9日更新

寄せられた「解答」はここをクリックください。

<ch3cooh>さんからの解答 8日午後1時受信 9日更新

1年は(閏年を除けば)365日、1週間は(今は戦争中でないので:笑)7日間、すると、1年間は52週+1日となります。

つまり、日月火水木金土 を正順とすると、閏年以外は正順に1づつずれることになります。閏年ではさらに+1日あるので2つずれます。

これぐらいであれば、手で計算も出来そうですが、途中でのミスがいやなので、プログラムで対処しました。

Q35.1)

(日本語が使えないので ローマ字で出力しました。)

2000 nenn : do you

2100 nenn : kin you

2200 nenn : sui you

2300 nenn : getsu you

2400 nenn : do you

(漢字に手で直すと)西暦 2100年: 金曜 西暦 2200年: 水曜 西暦 2300年: 月曜 西暦 2400年: 土曜

ここら辺までは、筆算でも出来そうです。

100年を365*100+25 or 365*100+24なので、

((7*52)+1)*100+25= (7*52*100)+100+25

125= (7*17)+6, 124= (7*17)+5で、どのようにずれていくかだけは単純に計算できます。

Q35.2)

nichi you : 58

getsu you : 56

ka you : 58

sui you : 57

moku you : 57

kin you : 58

do you : 57

(漢字に手で直すと)日曜: 58回 月曜: 56回 火曜: 58回 水曜: 57回 木曜: 57回 金曜: 58回 土曜: 57回

Q35.3)

答え:日曜・火曜・木曜

100年毎に、ずれる順序を考えると・・・

400で割りきれる年が開始点 : -1

400で割りきれない年が開始点 : -2

で、(-1,-2,-2,-2)がループになる。ループ内の和は-7であるため、400年毎に同じ曜日となる。

あとは、開始点を確認するだけで、出てこない値(3つ)を求めることが出来る。

<水の流れ:コメント> 8日記入

皆さんの早い解答に感謝します。次回は「大縄跳び」の軌跡の問題です。これも、よろしくね。

解答者の皆さんに「西暦2000年から400年までの」の解釈に違いが出てきていました。太郎さんは、400年で1周期に気がついていましたので、400回の中で、1月1日が何曜日ずつになっているかを知ってもらいたかったのです。もちろん、問題2で2000年と2400年が同じ土曜日ですので、土曜日が56回より1回多い57回でも良いわけです。表現に的確さを欠きました。お許しを!

                 

    <自宅>  mizuryu@aqua.ocn.ne.jp

 最初のページへもどる