埼玉県ふじみ野市のプログラミングスクールなら「iTeen(アイティーン)ふじみ野校」!!教育のプロが、プログラミングを一から丁寧に個別指導します。小学生から高校生対応!埼玉県ふじみ野市のプログラミング、IT知識の個別指導「iTeenふじみ野校」

【計算編】映画サマーウォーズの日付から曜日を的中させるやつをやりたい!!②
763 Views

こんにちは

iTeenふじみ野校の村田です


今回からサマーウォーズの日付計算に挑戦していきます

間違えている点、理解していない点多々ありますがお許しください(教えてください)


詳細は前回記事をご覧ください


目次

・主人公のセリフを調べてみる

・ツェラーの公式

・簡単に計算する方法



・主人公のセリフを調べてみる

僕に数学の心得はないので何から始めていいのかわかりません

そういう時はすぐにグーグルに頼ります。


そういえば映画の中で


先輩「曜日全部覚えてるの?」


健二くん「いえ、モジュロ演算というのを使って、、、」


というような会話をしていた記憶があります


なので「モジュロ演算」で検索してみます


すると


モジュロ演算とは割り算の余りを利用した計算のことらしいことがわかりました


曜日の計算を指すものではなく、


コードを書くときにつかう「%」や「mod」の計算自体を指すみたいですね


例えば10 mod 3 だと10÷3の余り つまり1になるというやつです



「モジュロ演算 曜日」と検索すると

サマーウォーズに触れる記事がいくつか出てきました


曜日を求める計算の時には「ツェラーの公式」というものを用いるようです


やっと手がかりをつかむことができました。




・ツェラーの公式

年をy 月をm 日をd とすると



( d + [ 26 * (m+1) / 10 ] + y + [y / 4] -2[ y / 100 ] + [ y / 400])mod 7


…らしいです。正直訳が分かりません






・簡単に計算する方法

挫折しかけつつ、検索していると


簡単に計算する方法もでてきました。インターネットは便利ですね。



① 西暦の下2桁 + 下2桁÷4の商 + 月に対応した数字 + 日


② ①の合計 mod  7 


で算出できるみたいです


曜日計算をマスターする日は近い、、、



次回記事「スクラッチ編」→ https://iteen.jp/schools/fujimino/article/7488