<Philip Franklin氏の曜日を求める公式>
ただし、[ ]はガウスの記号とよばれるもので、 c は 西暦年数の上2けた w を7でわったあまりによって |
先日、曜日を求める公式があることを知りました。よしお君の誕生日である1958年7月2日の曜日を、公式を使って求めてみました。 ここで問題です。西暦1958年7月2日から2005年7月2日までの48回の誕生日のうち、曜日が水曜日であったのは何回でしょうか。 |
<正解者一覧表>
正解者順位 | name | メール到着日時 | 備 考 |
1 | 呑 さん | 2005/7/1 0:04 | |
2 | nobu さん | 2005/7/1 0:11 | 石川県 |
3 | mhayashi さん | 2005/7/1 0:14 | 天下の台所 |
4 | なにわ さん | 2005/7/1 0:17 | 西宮市 |
5 | 藤本悟 さん | 2005/7/1 0:26 | 池田市 |
6 | 信三 さん | 2005/7/1 1:13 | シリコンバレーの住人 |
7 | いちもく さん | 2005/7/1 4:55 | |
8 | 経友会の進作 さん | 2005/7/1 6:16 | 京都府木津町・67歳 |
9 | akira さん | 2005/7/1 7:28 | 東京都 |
10 | 巷の夢 さん | 2005/7/1 7:34 | 宮城県 |
11 | kasama さん | 2005/7/1 10:09 | 和歌山県プログラマ |
12 | ゴンとも さん | 2005/7/1 11:16 | |
13 | ろろ さん | 2005/7/1 14:01 | 神奈川県 |
14 | una さん | 2005/7/1 18:19 | 東京都練馬区 |
15 | 小6(受験生)!?!?航空アニマル さん | 2005/7/1 20:43 | 東京 |
16 | y.kobayashi さん | 2005/7/1 21:10 | |
17 | lapin さん | 2005/7/1 22:23 | 大阪府交野市 |
18 | 小5(そうだよ)???海上アニマル さん | 2005/7/1 23:01 | 東京都 |
19 | カエ さん | 2005/7/2 6:21 | |
20 | 勇水 さん | 2005/7/3 0:54 | |
21 | スモークマン さん | 2005/7/3 8:41 | 目指せ囲碁5段! |
22 | 安曇野山峯農園 さん | 2005/7/3 23:03 | 長野県のりんご農家 |
23 | 浜田明巳 さん | 2005/7/4 8:30 | |
24 | 佐藤 広宣 さん | 2005/7/4 14:27 | 東京都 |
25 | oguchan1 さん | 2005/7/4 23:36 | 岡山県 |
26 | teki さん | 2005/7/5 20:30 | 大阪府 |
27 | 修学旅行で安曇野行きます さん | 2005/7/5 22:15 | トーキョー |
28 | 剣道部員 さん | 2005/7/5 23:07 | 兵庫県豊岡市 高2 |
29 | masa さん | 2005/7/5 23:45 | 山口県 |
30 | 安楽 さん | 2005/7/6 9:56 | 宮崎県 |
31 | リンデン さん | 2005/7/6 10:22 | 長崎県 学習塾 |
32 | ニア さん | 2005/7/8 4:55 | 滋賀県 |
33 | あっけらけ さん | 2005/7/8 18:36 | 東京都6年生23区内 |
34 | 中1!!!(マジで)鉄道アニマル さん | 2005/7/8 21:29 | |
35 | nakka さん | 2005/7/10 10:26 | 個別指導塾講師 |
36 | 翔 さん | 2005/7/12 13:17 | |
37 | y.okada さん | 2005/7/12 20:09 | 中二 |
38 | アニマル募集中 さん | 2005/7/13 18:27 | 東京都6年生26市内 |
39 | あつきパパ さん | 2005/7/15 18:22 | 愛知県 2歳児と0歳児の父 |
40 | おとお さん | 2005/7/18 15:18 | 三重 |
41 | 小さな白衣の天使 さん | 2005/7/27 23:47 | 広島県のとぁる私立の3) |
42 | ウジミヤジュン さん | 2005/7/28 18:26 | 東京のシャ |
43 | たかぴろ さん | 2005/7/29 18:49 | 滋賀県 カリスマ家庭教師 |
44 | ほげ さん | 2005/7/29 19:08 | 北の隠れ家 |
45 | すてっぷす さん | 2005/7/31 21:09 |
答えは 7回 でした。
ゴンとも さんより 投稿日:2005/07/01(Fri) 10:56
やり方は十進basicで以下です
1900年代は
for y=58 to 99
let w=-12+int(y/4)+y
if mod(w,7)=4 then print y
next y
end
58 69 75 80 86 97 で 1900年代は6通り
2000年代
for y=0 to 5
let w=-13+int(y/4)+y
if mod(w,7)=4 then print y
next y
end
3 で 2000年代は1通り で総計7通り・・・・・・(答え)
経友会の進作 さんより
(1):今回の問題は「公式」に基づき地道に解きました。
(2):1958年から2005年の48年を検討の年としました。
(3):最初の1958年7月2日が水曜日なので以降・・・
69,75,80,86,97,03年の各7月2日が水曜日で6回あり、
計7回です。
ろろ さんより
今回は公式を使うと訳が分からなくなったので、表にして考えま
した。
1年は365日なので前年水曜日の場合は翌年木曜日と一つ曜日が
ずれます。
ところが、4年に1度のうるう年では2つずれてしまいます。
4年を1周期にすると48÷4=12週
5列x12行の表に水曜日から順に曜日をいれていきます。
横を5列にしたのは、ずれてしまったために出現しなかった曜日
があるためです。
3列目は出現しない曜日になります。
5x12の表の中に水曜日は9回ありますが、そのうち3列目に
来るのが2回あるので
9−2=7
スモークマン さんより
365/7=52・・・1
つまり、7年ごとに同じ曜日が巡ってくる。
しかし、うるう年が、3回あるので、
47/7=6・・・5
5+3=8
8/7=1・・・1
結局、6+1=7 回
浜田明巳さんより
エクセルのマクロで解いた.不自然に一つの公式にまとめず,基本に忠実に曜日を計算した.つまり西暦1年1月1日の月曜日から,閏年に注意して(年が400の倍数であるか,または4の倍数でありかつ100の倍数でない),順に曜日を計算していって,1958年以降7月2日が水曜日である年をすべて表示するようにした.
この結果,次の7回あることが分かる.
1958,1969,1975,1980,1986,1997,2003
Option Explicit
Sub Macro1()
Sheets("Sheet1").Select
Cells(1, 1).Value = 0
Range("A1").Select
'
Dim year As Integer
Dim month As Integer
Dim week As Integer '0:日, 1:月, 2:火, 3:水, 4:木, 5:金,
6:土
week = 1 - 1 '0001/01/01->月曜日
For year = 1 To 2005
If year <> 1958 Then
week = (week + (365 + leap(year)))
Mod 7
Else
For month = 1 To 7 - 1
week = (week + days(1958,
month)) Mod 7
Next month
week = (week + 2) Mod 7 '1958/07/02の曜日
End If
If year >= 1958 And week = 3 Then
Cells(1, 1).Value = Cells(1, 1).Value
+ 1
Cells(Cells(1, 1).Value, 2).Value =
year
Range("B" & Cells(1,
1).Value).Select
End If
Next year
Range("A1").Select
End Sub
Private Function leap(ByVal year As Integer) As Integer
leap = -((year Mod 4 = 0 And year Mod 100 > 0) Or (year
Mod 400 = 0))
End Function
Private Function days(ByVal year As Integer, ByVal month As Integer) As Integer
days = 31 + (month = 4 Or month = 6 Or month = 9 Or month =
11) + 2 * (month = 2 And leap(year) = 1) + 3 * (month = 2 And leap(year) = 0)
End Function
たかぴろ さんより
一年365日は52週間と1日
だから1959年の7月2日は木曜日
こんな感じで、7月2日が次に水曜日になるのは8回目
その次は8+7=15回目
よって7/2が水曜なのは
1,8,15,22,29,36,43回目の7/2
よって答えは
7回!!