プログラミングの為の数学と算数 vol.2at TECHプログラミングの為の数学と算数 vol.2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト185:デフォルトの名無しさん 05/04/28 06:55:56 ここからさらに、4月以降の1日(ついたち)の曜日について考える m月1日(3 <= m <= 14)が3月1日から何日たっているかを求めればよい その日数を f(m) であらわすとすると [21/4 * c] + [5/4 * y] + 3 + f(m) を求め、それを7で割った余りから各月の一日の曜日は求められる なお、うるう年に増える一日は年の最後の日であるので、f(m) の値ははうるう年の影響を受けない f(3) = 0 は自明、3月は31日あるので、f(4) = f(3) + 31 = 31 だが 例によって7の倍数分は無視しても曜日には影響は無いので28引いて、f(4) = 3 としても差し支えない つまり、f(m) を求めるに際しては、3月は3日しかないと考えても結果は変わらない この考えに従って、各月の日数を3月から順に列挙すると 3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3, 0 or 1となる 1日(ついたち)の曜日を考える上では最後の月である14月が何日であるかは影響が無い したがってこの数列は 3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3 と考えてよい これをよく見ると、3,2,3,2,3というパターンの単純な繰り返しとなっている このことから、5ヶ月は13日(3+2+3+2+3=13)であると考えることができるのである したがってこのことから、f(m) は、[13/5 * m]に定数項を足したもので表現できそうである [13/5 * m]の値を m = 3 から m = 14 について列挙してみよう 7, 10, 13, 15, 18, 20, 23, 26, 28, 31, 33, 36 この数列の隣同士の値の差が各月の日数と合致していればよい 実際に求めると 3, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3 これは、上述の数列とよく似ているが一つ横にずれている(残念) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch