見出し画像

もっとも洗練された筆算による曜日計算法~数学編

本編では日付の年月日から紙と鉛筆を使って曜日を計算する方法について, そのメカニズムを解説します. 手順やその内容についてはアルゴリズム編を参照してください.

アルゴリズムはツェラーの公式というよく知られた曜日計算法に基づいており, 実際何をやっているのかといえば, ツェラーの公式を一部変形したり, あとは表を参照することにより効率よく計算しようというものです. では, 本当に

「アルゴリズムとツェラーの公式は計算結果が一致するのか?」

という問題について考えてみようと思います.


ツェラーの公式を変形する

アルゴリズムとツェラーの公式は, いずれも与えられた日付の年数, 月数, 日数をそれぞれ$${Y,M,D}$$という数に変換し, それを入力値に用います. そこで両者を見比べてみると, $${M}$$と$${D}$$に関する計算については, 計算結果が一致する(法を$${7}$$として合同になる)ことに疑問の余地はないといえます. つまり, $${M=3,4, \dots ,14}$$に対して, $${f(M)}$$を表$${1}$$のようにとると,

表1

次のような式が成立します.

$$
f(M)+D≡ \lfloor \frac{13M+8}{5} \rfloor +D \pmod 7
$$

したがって, 注目すべきは$${Y}$$に関する計算の部分のみということになります.

利用した結果

私たちは, 結果20230724-1の証明に先立ち, 次を認めることにします.

結果$${1}$$:
整数$${a}$$および正整数$${b}$$について,$${a}$$を$${b}$$で割った商は$${\lfloor \frac{a}{b} \rfloor }$$に等しい.

問題解決

私たちは次の結果を証明することで問題を解決できます.

結果20230724-1(年数に関する計算の一致):
任意の整数$${x}$$,ただし$${x≥0}$$に対して,$${q_i,r_i,i=1,2,3}$$を,

$$
x=400q_1+r_1,0≤r_1<400, \\
r_1=100q_2+r_2,0≤r_2<100, \\
r_2=4q_3+r_3,0≤r_3<4, \\
$$

を満たす整数とする.するとこのとき,

$$
5(q_2+q_3 )+r_3≡x+\lfloor \frac{x}{4} \rfloor - \lfloor \frac{x}{100} \rfloor + \lfloor \frac{x}{400} \rfloor \pmod 7
$$

が成り立つ.

証明:
まずは,

$$
(1)  146097q_1+36524q_2+1461q_3+365r_3=365x+\lfloor \frac{x}{4} \rfloor -\lfloor \frac{x}{100} \rfloor +\lfloor \frac{x}{400} \rfloor
$$

であることを示す. $${o_i,p_i,i=1,2,3}$$を

$$
x=400o_1+p_1,0≤p_1<400, \\
x=100o_2+p_2,0≤p_2<100, \\
x=4o_3+p_3,0≤p_3<4 \\
$$

である整数とする. するとまず除算アルゴリズムの定理により$${o_1=q_1,p_1=r_1}$$である. 次に,

$$
x=400q_1+100q_2+r_2=100(4q_1+1q_2 )+r_2
$$

であることに注目する. このとき, $${4q_1+1q_2,r_2}$$は整数であり,$${0≤r_2<100}$$なので,除算アルゴリズムの定理により$${o_2=4q_1+1q_2,p_2=r_2}$$となる. 同様にして,

$$
x=400q_1+100q_2+4q_3+r_3=4(100q_1+25q_2+1q_3 )+r_3
$$

に注目する.このとき, $${100q_1+25q_2+1q_3,r_3}$$は整数であり, $${0≤r_3<4}$$なので,除算アルゴリズムの定理により$${o_3=100q_1+25q_2+1q_3,p_3=r_3}$$となる. 結果$${1}$$より

$$
o_1=\lfloor x/400\rfloor, \\
o_2=\lfloor x/100\rfloor, \\
o_3=\lfloor x/4\rfloor \\
$$

なので, したがって

$$
146097q_1+36524q_2+1461q_3+365r_3 \\
=(365 \cdot 400+100-4+1) q_1+(365 \cdot 100+25-1) q_2 \\
+(365 \cdot 4+1) q_3+365r_3 \\
=365(400q_1+100q_2+4q_3+r_3 )+(100q_1+25q_2+1q_3 ) \\
-(4q_1+1q_2 )+q_1 \\
=365x+o_3-o_2+o_1 \\
=365x+\lfloor \frac{x}{4} \rfloor -\lfloor \frac{x}{100} \rfloor +\lfloor \frac{x}{400} \rfloor
$$

であり$${(1)}$$を示した. するとただちに

$$
5(q_2+q_3 )+r_3=0q_1+5q_2+5q_3+1r_3 \\
≡146097q_1+36524q_2+1461q_3+365r_3 \\
=365x+\lfloor \frac{x}{4} \rfloor -\lfloor \frac{x}{100} \rfloor +\lfloor \frac{x}{400} \rfloor
≡x+\lfloor \frac{x}{4} \rfloor -\lfloor \frac{x}{100} \rfloor +\lfloor \frac{x}{400} \rfloor \pmod 7
$$

が成り立つ. $${\blacksquare}$$

この記事が気に入ったらサポートをしてみませんか?