Φリリナとナツのゆる数学Φ

ほんとうに、そうなのかな。ゆっくりと、たしかめて。

・oO〇 第3話 〇Oo・  切り捨てる数式、四捨五入する数式

\displaystyle

「ふうん。でもそれって」

それがアイツの最初の反応だった。
まあ、予想どおりではあるけれど。

シンイチ。「筆記テストなら」クラスで一番。ただし、いつも一言多くてみんなに煙たがられている。
私も別に親しくはないのだけれど、たまたま塾が一緒で、たまたま私のノートに書いてあった指カレンダーについてのメモを見られてしまった。

なりゆきでシンイチに指カレンダーについて説明する。

「ふうん。でもそれって、月ごとの曜日の位置を覚えなきゃいけないんだね。リリナ君は知らないかもしれないけど、月ごとの数字を覚えなくても曜日を計算できる式があるよ。」

はああ。私は深いため息をつく。
なぜシンイチはいつも否定から入ってくるのだろう。例えば「へえ、それは知らなかった、すごいね!そういえば、こんな式もあるよ」と変えるだけでも印象はだいぶ変わるんだけど。

シンイチは「えーと、確か……」とつぶやきながらノートに数式を書き込んでいく。

\left[\left\{ d + \lfloor \frac{26(m+1)}{10}\rfloor + Y +  \lfloor \frac{Y}{4}\rfloor + 5 \right\} \mod 7 \right] + 1

「こんな感じだったと思う。Yは年の下二桁、mは月、dは日。この
\lfloor \ \ \  \rfloor
というちょっと変わったカッコは、「このカッコの中の数字を切り捨てる」という計算をするんだ*1。それから、1月と2月だけは、前の年の13月と14月として計算する必要があるよ。\mod 7というのは、7でわった余りを計算するということ。で、計算結果と曜日の対応関係は・・・」

数字 1 2 3 4 5 6 7
曜日

「こうだよ。リリナ君が信じられないなら、試してみてもいいよ」

信じられないので、試しにやってみる。たとえば、この前ナツと指カレンダーで計算した2018年7月13日。
13日の金曜日になるはず。

Y=18、m=7、d=13を式に代入する。

\left[\left\{13 + \lfloor \frac{26(7+1)}{10}\rfloor + 18 +  \lfloor \frac{18}{4}\rfloor + 5 \right\} \mod 7 \right] + 1
=\left[\left\{13 + \lfloor 20.8 \rfloor + 18 +  \lfloor 4.5 \rfloor + 5 \right\} \mod 7 \right] + 1
=\left[\left\{13 +20 + 18 +  4 + 5 \right\} \mod 7 \right] + 1
=\left[60 \mod 7 \right] + 1
=4 + 1
=5

5。金曜日。あってる。2018年の7月は13日が金曜日になる。

「うーん」

私はじっとシンイチの書いた式を見つめる。
どういう仕組みで計算しているのだろう。

2月を除けば、一ヶ月は30日か、31日だ。
7で割れば2か3あまる。

だから曜日は一ヶ月で2日か3日進む。
式の中で、月(m)に \frac{26}{10}を掛けているところがある。

ひと月ごとに2.6日ずつ進めて、小数点以下を切り捨てると、ひと月ごとに3日、2日、3日、2日、3日、3日、2日、……というふうに、ちょうど上手いこと曜日が進んでいくのか。

でも、2月は28日か29日なので、このやり方ではうまくいかない。
そこで、1月と2月は前の年の13月と14月として計算することでうまくいくんだ。

f:id:mouse-ex:20180809203425p:plain

「ふぅん。よく出来てるね」

なんとなく仕組みはわかったけど、何か違和感が残る。
もう一度シンイチの書いた式をグッと見つめる。

シンイチは何か勘違いしているらしく得意そうな顔をしているが、私はこの式に感じる違和感を突き止めたい。

「やっぱり、この式で曜日が計算できるのって納得いかない感じがする」

「ふーん、リリナ君が信じられないなら、ほかの日付で確認してみなよ」

私はシンイチの言葉を華麗にスルーしながら考える。

違和感の原因はなんだろう。
曜日の法則を思い出せ。

曜日は1年に1日ずれる。うるう年があるから、4年で5日。100年ごとにうるう年でなくなり、400年ごとにやっぱりうるう年に戻る。
そして曜日は400年ごとにくりかえす。100年ごとには繰り返さなかったはず。

シンイチの式では、100年ごとに同じ曜日になってしまう。ということは、

「やっぱりおかしいよこの式。2018年前後では正しく計算できてるけど、でも……うーん」

「なんだよ」
シンイチが口をとがらせる。

「これじゃ100年ごとに曜日がくりかえしちゃうよ。2000年1月1日から2099年12月31日まではきっと正しいけど、そのほかではズレると思う」

シンイチは一瞬「しまった」という顔をしたが、すぐになんでもないような表情に戻る。そしてすました顔でいう。

「あ、そうそう、今のは簡易版なんだよ。正式には、もうちょっと複雑な式があるんだ。Cを西暦の上2ケタとして……」

\left[\left\{ d + \lfloor \frac{26(m+1)}{10}\rfloor + Y +  \lfloor \frac{Y}{4}\rfloor  + 5C +  \lfloor \frac{C}{4}\rfloor + 5 \right\} \mod 7 \right] + 1

「Cが20のときは、ちょうどCについての式の計算結果がゼロになるから、計算しなくてもいいんだよ!いやあ、そこに気がつくとはリリナ君もなかなかやるね」
「……」

本当かな。確かめてみよう。
前の式との違いは、

 5C +  \lfloor \frac{C}{4}\rfloor

の部分だ。

Cが20のときは

 5C +  \lfloor \frac{C}{4}\rfloor
= 5 \cdot 20 +  \lfloor \frac{20}{4}\rfloor
= 100 +  \lfloor 5 \rfloor
=105

105は7で割り切れる。
C=20のときは確かに計算結果に影響はないな。
ふーむ。

不安そうに私の手元を見ていたシンイチの表情が緩んだように見えた。
コイツ、絶対忘れてただろう。問い詰めても答えないだろうから、ツッコミはいれてやらない。
そのかわり、ジトっとにらみつける。

シンイチは目をそらす。
「こ、こんどこそ間違いないよ。これが、曜日を計算できる数式だよ!」

f:id:mouse-ex:20180818185658j:plain

宿題2-2
曜日を数式で計算する他の方法をしらべてみましょう。
こたえ のひとつ*2
\left[\left\{ d + \lfloor \frac{26(m+1)}{10}\rfloor + Y +  \lfloor \frac{Y}{4}\rfloor  + 5C +  \lfloor \frac{C}{4}\rfloor + 5 \right\} \mod 7 \right] + 1

ただし、年を100で割った商がC、余りがY、月がm、日がd。
1月と2月は、前の年の13月と14月として計算する。
計算結果と曜日は、1〜7がそれぞれ月曜日〜日曜日に対応している。

シンイチの狼狽しているところなんてめったに見られない。
今日は珍しいものをみた。

あらためて式をみる。

「でも、まあ、この式は面白いな。数式の途中に切り捨てがあるなんて」

「数式の中に切り捨てがあるのがそんなに珍しいかなあ、リリナ君」

シンイチがまたいつもの調子に戻ってしまった。

「切り捨てだけじゃなくてね」

「?」

「四捨五入を使う数式もあるよ」

んん?今、話が飛躍したよね。四捨五入?

「どういう意味?」

黄金比ってあるよね。約1.618。正確には、\frac{1+\sqrt{5}}{2}。で、

『フィボナッチの数列は、前の数字に黄金比をかけて四捨五入して作ることもできる』

んだ」

「……え?」

不意を突かれて私は間の抜けた声を出してしまう。

「フィボナッチの数列ってあの、1,1,2,3,5,8,13,21,……って続く数列のこと?5+8=13、8+13=21……という風に、最後の二つの数字を順々に足し算して作る……」」

「そうだよ。フィボナッチの数列は、最後の二つの数字を見なくても、最後の数字さえわかれば、最後の数字に黄金比をかけて四捨五入する方法で順々につくることもできるんだよ。これはさすがに君も知らなかったみたいだね」

シンイチがニヤニヤしている。
その顔を見た瞬間、私の右手のシャーペンがミシシッと軋んだ音を立て、周囲の注目を引いてしまった。

「あれ、このシャーペンいつのまに壊れてるのかな。フシギだなぁ」
などと独り言を言っていると、塾の教室に講師が入ってきた。
その日のシンイチとの会話は、それで終わりになった。

悔しい……という気持ちがないといえばウソになるけれども、私はそのときこう思っていた。
『フィボナッチの数列は、最後の二つの数字を見なくても、最後の数字さえわかれば、最後の数字に黄金比をかけて四捨五入する方法で順々につくることもできる』
そんなこと……本当にあるのかな?

宿題3
「フィボナッチの数列は、前の数字に黄金比をかけて四捨五入して作ることもできる」が本当かどうか確かめてみましょう

(解答は次回)

【つづく】

*1:床関数、ガウス記号などと呼ぶ。負の数の場合は、\lfloor -2.3\rfloor =-3 のように計算するため、「正の数の場合は小数点以下を切り捨てる」と言ったほうが正確です。

*2:ツェラーの公式