理系東大生が運営する人生攻略ブログ
※本ページには広告を含みます

サマーウォーズで健二がやってた誕生日の曜日を当てる計算方法【モジュロ演算】

このブログの管理人
管理人:西片(にしかた)
  • 東大(工学系)に所属している学生
  • PC、スマホ、ネット全般に詳しい(つもり)
  • 応用情報技術者などのIT系国家資格を複数所有
  • 開発協力→努力家のための新SNS「yalkey
  • 本ブログの更新情報発信してます!
    Misskey / Mastodon / Twitter

ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です

今回は映画『サマーウォーズ』で主人公・小磯健二くんがやってた「モジュロ演算」の解説をしていこうと思います(結構古い映画ですが…)

【この記事で分かること】
・元ネタ、サマーウォーズについて
・誕生日の曜日を簡単に求める方法
・↑の解説
・曜日を求める公式

↓Adobe CCを最安で買う方法(PhotoshopやIllustrator、Premiere Proといった20種類以上の人気ソフトが使い放題に)

あわせて読みたい
【2023年最安】Adobe CCを安く買う方法【更新もOK】 ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回はAdobe Creative Cloud(通称、Adobe CC)を公式サイトよりも安く買...
クリックできる目次

元ネタ、サマーウォーズの概要

※以下、サマーウォーズのネタバレを含みます。見たくない方は、上の目次の「簡単な解き方」をクリックして計算方法のみをご覧ください

はじめに本記事で紹介するモジュロ演算を一躍有名にしたであろう映画・サマーウォーズについて軽く解説しておきます

『サマーウォーズ』とは2009年8月1日に公開されたアニメ映画。監督は『時をかける少女』や『バケモノの子』で有名な細田守さんです

物語の舞台は「OZ」と呼ばれる仮想空間が当たり前となった日本。

数学が得意な男子高校生・小磯健二(敬称略。以下同様)が、ひょんなことから憧れの先輩・篠原夏希の恋人のふりをして夏希の実家に行くことに。

何も起きないはずがなく、OZに関連したトラブルが発生して…って感じで物語が進んでいきます(あえて多くは語りません)

2009年公開の映画とは思えないようなVR世界の壮大さ、立派な日本家屋とネット世界の調和が印象に残る名作です

あわせて読みたい
【効率化】東大生が厳選!勉強を加速させる便利な文房具【受験にもおすすめ】 ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回は勉強を加速させる便利な文房具を紹介していきます ↓スマホ依存に...

で、この記事に関連するのは物語冒頭のとあるシーン

「健二が数学オリンピック日本代表まであと一歩だった」ことを知った夏希が健二に「なんかやってみてよ」と一発芸を要求します

↓その後の会話がこちら(セリフはうろ覚えなんで間違ってるかもしれません)

健二「先輩の誕生日、いつですか?」

夏希「7月19日。平成4年の」

健二「日曜日です!」

夏希「え?」

健二「1992年の7月19日は、日曜日でした!」

夏希「すっっごい!もしかして全部覚えてるの?」

健二「いえ、モジュロ演算っていうのを使って…あってました?」

夏希「ごめん、何曜日か知らないや…」

夏希は自分の誕生日が何曜日か覚えていませんでしたが、僕が確認したところ、ちゃんと当たってました

つまり驚くべきことに健二は夏希が誕生日を言った瞬間に曜日を当ててみせたのです

大して重要な場面ではなく時間も一瞬なのですが「どうやって計算したの?」と気になった方も多いと思います

簡単な解き方

まずは数学的な知識がほとんど不要の、暗記するだけでできる方法をお伝えします

数ステップで簡単にできるのでオススメです

【1ステップ目】
はじめに曜日を求めたい日付の西暦の下2桁を4で割ります。割って出てくる数をAとします(ただし余りは無視してください)

例えば2021年12月25日の場合、21÷4=5あまり1なのでA=5となります

【2ステップ目】
西暦の下2桁をBとします。つまり2021年12月25日の場合、B=21となります

【3ステップ目】
下の表を使って月に対応する数字をCとおきます。2021年12月25日の場合、C=6です

対応する数 C
11
24
34
40
52
65
70
83
96
101
114
126

【4ステップ目】
調べたい日をDとおきます。2021年12月25日の場合、D=25となります

【5ステップ目】
1900年代の場合E=0、2000年代の場合E=6とします。2021年12月25日の場合、E=6となります

【6ステップ目】
AからEをすべて足して、その和を7で割ります。その余りを下の表に当てはめれば曜日が分かります。

余り曜日
0
1
2
3
4
5
6

2021年12月25日の場合、A=6, B=21, C=6, D=25, E=6なので、(5+21+6+25+6)÷7=9あまり0となって土曜日だと分かるわけです

あわせて読みたい
【東大生が解説】進研ゼミ高校講座の評判・口コミは?料金・特徴も! ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 本記事では、進研ゼミ高校講座を実際に受講した人の感想をもとに、進研...

上記の方法で計算できる理由

単に計算方法を教えるだけだとツマラナイのでちょっと解説します(自分で考えた解説なので間違ってたらすみません…)

まず前提として、1週間は7日あるので「7で割った余りが重要」ということを覚えておいて下さい

例えば「6/24(火)の22日後は何曜日?」と聞かれたら「22を7で割った余りは1だから火曜日の1つ後の水曜日になる」と瞬時に分かるわけです

これを踏まえて考えていきましょう

まず、1ステップ目の「西暦の下2桁を4で割る」は「うるう年」でズレる分を表しています(基本的に4年に1回うるう年が来て曜日がズレるので)

2ステップ目は「年間で何曜日分ズレるか」を表しています。うるう年を除くと1年は365日あって365を7で割った余りが1なので、西暦の分だけ曜日がズレるわけです(上2桁については5ステップ目で考慮)

3ステップ目は「1か月で何日ズレるか」を表しています

例えば1月は31日あるので、1月と2月の同じ日(1/25と2/25など)は31を7で割った余り3だけ曜日がズレることになります

よって、2月に対応する数字は、1月に対応する「1」と31日経ってズレる分「3」を足して4になるわけです

同様に、うるう年以外の2月は28日あって28は7で割り切れるので、2月に対応する数と3月に対応する数は同じ4となります

※「なんで1月に対応する数を1にしてるのか」疑問に持つ方もいるかもしれませんが、単に1900年代を計算するときに5ステップ目を省略できるようにしたものと思われます

あわせて読みたい
【東大生厳選】高校化学のおすすめ参考書・問題集【大学受験も】 ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回は高校化学の参考書・問題集を難易度別に紹介していこうと思います...

4ステップ目は日付を足すだけなので省略

5ステップ目は1900年代の場合0、2000年代の場合6を足すわけですが、なぜ2000年代になると6足す必要が出てくるのでしょうか?

理由は簡単で100年で6日分ズレるからです。

うるう年がなかった場合、100÷7=14あまり2で2ズレることになります

しかし実際には100年に25回うるう年が来ることから「(100+25)÷7=17あまり6」となるため6を足してるわけです

以上の説明を聞くと下記のように100年ごとに6後ろにズレる(1前にズレる)ように思えます

  • 1900年代:0
  • 2000年代:6
  • 2100年代:5
  • 2200年代:4
  • 2300年代:3
  • 2400年代:2

しかし実際は下のようになります

  • 1900年代:0
  • 2000年代:6
  • 2100年代:4
  • 2200年代:2
  • 2300年代:0
  • 2400年代:6

これにはちゃんと理由があって「100の倍数になる年の中で400で割り切れない年はうるう年にならない」というルールがあるためです

これにより2100年や2200年、2300年は(4の倍数にもかかわらず)うるう年にならないので、さっき示した数を5ステップ目で足すことになります

1~5ステップを求めたら、あとは足して7で割った余りを計算するだけです

ツェラーの公式を使う

曜日はツェラーの公式を使ってもを求めることが可能です

【ツェラーの公式】

\(y\)年\(m\)月\(d\)日の曜日を求める場合は以下の式を使います(スマホでお読みの方は数式をスクロールしてください)

$$h=\left\{d+\left\lfloor\frac{26(m+1)}{10}\right\rfloor+Y+\left\lfloor\frac{Y}{4}\right\rfloor-2C+\left\lfloor\frac{C}{4}\right\rfloor\right\}$$

ただし\(Y\)と\(C\)の定義は以下の通りです

$$C= \left\lfloor\frac{y}{100}\right\rfloor$$

\(Y\)は\(y\)を100で割った余り

\(\lfloor \rfloor\) という記号は見慣れないかもしれませんが、\(\lfloor x \rfloor\) で\(x\)を超えない最大の整数を表します

例えば\(\lfloor4.5\rfloor=4\)、\(\lfloor6\rfloor=6\) という感じです

以上の式で求めた\(h\)を7で割った余りから曜日を求められます

\(h\)を7で割った余り曜日
0
1
2
3
4
5
6
あわせて読みたい
PDF対応!大学生にオススメの電子ノート iPadとの比較も ヤゴコロ研究所に訪問いただきありがとうございます。現役東大生の西片(@nskt_yagokoro)です 大学生の皆さん、電子ノートやタブレットは持っていますか? 講義資料を電...

モジュロ演算について

映画を見ただけだと「曜日を当てる計算=モジュロ演算」だと思ってしまうかもしれませんが、モジュロ演算は「余りを計算する演算」であって誕生日とは関係ありません

数学を勉強したことのある人なら「mod」の記号でお馴染みかと思います

たとえば「5 mod 3」の結果は2(=5を3で割った時の余り)になります

誕生日の曜日とモジュロ演算は直接的には無関係ですが、「曜日を求める」ということは「7で割った余りを求めること」に他ならないため映画中ではモジュロ演算という単語を出したのだと思います

↓Adobe CCを最安で買う方法(PhotoshopやIllustrator、Premiere Proといった20種類以上の人気ソフトが使い放題に)

あわせて読みたい
【2023年最安】Adobe CCを安く買う方法【更新もOK】 ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回はAdobe Creative Cloud(通称、Adobe CC)を公式サイトよりも安く買...

余談

本記事とはあまり関係はありませんが、「Cluster」というVRゲームがサマーウォーズに出てくる仮想空間「OZ」の世界に似てます

cluster(クラスター)

cluster(クラスター)

Cluster, Inc.無料posted withアプリーチ

PCやスマホさえあれば遊べるので興味のある方は調べてみてください

一気に学力を伸ばしたいなら東進がおすすめ!

画像:東進公式サイトより

難関大現役合格実績日本一の予備校「東進」にて1日無料体験受付中!一気に学力を伸ばしたいなら、無料体験してみることをおすすめします!
無料体験の詳細→東進公式サイト
さらに、資料請求も無料!1分で完了するので是非申し込んでみてください!
・無料資料請求の詳細→東進公式サイト

世の中には様々な塾・予備校・通信教育がありますが、その中でも圧倒的におすすめなのが「東進」です

東進には「今でしょ」でお馴染みの林修先生をはじめとする全国トップクラスの講師陣が在籍しており、分かりやすくレベルの高い授業を受けることができます

東進は合格実績も素晴らしく、2023年の東大合格実績では圧倒的1位を獲得(参考:比較ナビ”東京大学(東大)合格実績ランキング”)。難関大を本気で目指すなら東進がおすすめです

ちょうど今は、1日無料体験の受付中なので、これを機に無料体験してみるのがいいと思います(無料体験の詳細や申し込みは以下のリンク参照)

東進 公式サイト(無料体験&無料資料請求 申し込み期間中!)

以上、東大生ブロガーの西片(@nskt_yagokoro)でした!

あわせて読みたい
【安いのは?】2024年最新!おすすめの家具・家電レンタル ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回は、家具や生活家電や高性能ガジェットをレンタルできるサービスを...
あわせて読みたい
【勉強しろ】東大生が作成!やる気が出るスマホの壁紙・待受画像【おしゃれ】 ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 突然ですが皆さん、「勉強をしなきゃいけないのに、ついついスマホをい...

東大生が作った「努力家のためのSNS」爆誕!

先日、東大生が開発した新SNS「yalkey (やるきー)」がリリースされました!(僕も開発に関与してます!)

「努力家のためのSNS」をコンセプトとしており、一般的なSNSのように文章を投稿できるだけでなく、日々の努力を数値データとして登録しグラフ化・カレンダー化できるようになっています↓

登録できるデータは「時間(時間/分)」「整数」「小数」「ToDo (達成or未達成)」の4種類で、単位も自分でカスタマイズ可能。以下のような様々な用途に利用できます。

  • 勉強時間を記録してグラフ化
  • 読書したページ数を記録してグラフ化
  • 筋トレした日をToDoカレンダーで管理

登録したデータはCSVファイルで出力できるので、後からExcelで編集することも可能となっています。また、今後も新しい機能が追加していく予定です!

「努力すると決めたけど中々やる気がでない...」「日々の進捗をグラフ化して見える化したい!」という方にうってつけのアプリとなっています!

リリースしたばかりでユーザーが少ないので、登録してもらえるとめちゃくちゃ喜びます!もちろん完全無料です!(登録画面はこちら ※現在Web版のみ。スマホアプリ版は今後リリース予定。)

公式サイト → https://yalkey.com/

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
クリックできる目次