プログラミングの為の数学と算数 vol.2at TECHプログラミングの為の数学と算数 vol.2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト186:デフォルトの名無しさん 05/04/28 06:57:32 一つずらすために、m の代わりに m + 1 を使ってみたらどうか? [13/5 * m]ではなく[13/5 * (m + 1)]の値を m = 3 から m = 14 について列挙してみよう まあこれは、再計算する必要も無く、さっきの数列が左に一つずれただけだ 10, 13, 15, 18, 20, 23, 26, 28, 31, 33, 36, 39 この数列の隣同士の値の差は、やはり左に一つずれて 3, 2, 3, 2, 3, 3, 2, 3, 2, 3, 3となり、これで目的の数列と一致する つまり、 f(m) は、[13/5 * (m + 1)]に定数項を足したもので表現できる ここで[13/5 * (m + 1)]の値を m = 3 で求めると、[13/5 * 4] = 10 7の倍数は無視できるので、この値は 3 と同じとみなせる これは目的の値 f(3) = 0 より 3 多い したがって f(m) = [13/5 * (m + 1] - 3 となる 各月の1日(ついたち)の曜日は [21/4 * c] + [5/4 * y] + 3 + f(m) = [21/4 * c] + [5/4 * y] + [13/5 * (m + 1] を7で割った余りから求められる 2日(ふつか)以降の曜日については、一日ごとに曜日が一個ずれるから m月d日について求めるときは、上式に d - 1 を加えればよい [21/4 * c] + [5/4 * y] + [13/5 * (m + 1] + d - 1 この値を7で割った余りが、100 * c + y年m月d日の曜日となる 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch