はじめに
こんにちは,Umamusume22です.最近,こち亀やまどマギなど懐かしいアニメをDMMで観ています.魔法少女のほむらちゃんがまどマギの1話でホワイトボードに書かれている数学の問題を高速で解くシーンがあります.このシーンを一時停止して問題を鑑みた所,高校数学の内容でした.ほむらちゃんは中2なのに高1レベルの数学を高速で解くとは,,,,,見滝原中学校の生徒さんは全体的に学力が高いのかまたは中高一貫校なのか
今回はほむらちゃんが解いてくれた数学の問題を題材にしてpythonで解きます.手で解く方はほむらちゃんがやってくれました.まどマギファンとして彼女の努力を無下にしません!!!!
ほむらちゃん,数学の問題を解いてくれてありがとう
まどマギとは[1,2]
まどマギとは魔法少女まどかマギカの略で願いを叶えた代わりに主人公のまどかたちが魔法少女として人類の敵と戦うダークなストーリーです.まどマギが放送されてから10年が経ちました.まどかたちは容姿が可愛いのにストーリーはダークなので初めて観る方は少し注意が必要です.ネタバレになるのでここには詳しく書きませんが著者がまどマギを観た時,前半は鬱になりました.そして,最終回は私の涙腺が崩壊しました.opはアニソン歌手で有名なClarisが歌っています.私はClarisも大好きです.
来年の冬にまどマギの映画が公開されるそうです.楽しみで仕方がありません.
(opはまたClarisが歌いますように)
出典: "Kraso[クラソ] "https://www.felissimo.co.jp/kraso/blog/posts/24662
上記の画像に写っているピンク色の髪の毛が鹿目まどかちゃんです.主人公です.のんびりしている女の子です.弓を使って敵を倒します
次に黒い髪の毛の女の子が暁美ほむらちゃんです.クールでカッコ良いです.銃や爆弾を使います.
次に金髪の女の子が巴マミさんです.銃を使って敵を倒します.巨乳です.(オフレコ)
最後に青色の髪の毛が美樹さやかちゃんです.まどかの友達です.気が強い子です.剣を使います.
ほむらちゃんが解いていた数学の問題について[3]
出典: "まどマギに出てきた数学の問題とちょっとした解説"
https://tiro-finale.hatenablog.com/entry/2018/12/22/234112
上記の画像はまどマギの1話に出てくるシーンです.ほむらちゃんが高速で数学の問題を解いていきます.ホワイトボードに写っている問題を切り取ります.
問:$p$は素数,$n$は自然数とします.
(1+$n$)$p$-$n^p$-1で割り切れることを証明してください.
問題の内容としては高1レベルです.しかし,ほむらちゃんたちは中2です.進学校なのかほむらちゃんたちが過ごしている世界の学習指導要領がかなり進んでいるのか真相は不明です.
問題の解説[3,4,5]
まず,問題を解くために二項定理を使います.(1+n)^pを展開します.
\begin{eqnarray}
(1+n)^p &=& 1^p+ _pC_1n+_pC_2n^2+・・・+_pC_{p-1}n^{p-1}+_pC_{p}n^{p}\\
&=& 1+pn+n^p+pn^{p-1}+ \frac{p(p-1)}{2}n^2\\
&=& 1+n^p+p(n+n^{p-1}+\frac{p-1}{2}n^2)\\
&=& 1+n^p+p(n+n^{p-1}+\frac{p-1}{2}n^2)-n^p-1\\
&=& p(n+n^{p-1}+\frac{p-1}{2}n^2)\\
\end{eqnarray}
つまり,$(n+n^{p-1}+\frac{p-1}{2}n^2)$は整数となれば良い.
すなわち,$(1+n)^p$の展開式の第$r$項目($2<=r<=n-1$)の係数を$p$で割ると良い.
\begin{eqnarray}
_pC_r &=& \frac{p!}{(p-r)!r!}\\
&=& \frac{p(p-1)!}{(p-r)!r!}\in\mathbb{Z}
\end{eqnarray}
$p$は素数であるため,分母が$p$で割り切れることはない.
よって,(1+$n$)$p$-$n^p$-1は$p$で割り切れる
ソースコード
import math
# 組み合わせを計算する関数
def combination(prime_number, n):
return math.factorial(prime_number) // (math.factorial(prime_number - n) * math.factorial(n))
# 与えられた値
prime_number = 11
n = 2
# 結果を計算して表示
result = combination(prime_number, n)
print(f"C({prime_number}, {n}) = {result}")
ソースコードの実行結果例
C(11, 2) = 55
最後に
ほむらちゃんが解いてくれた数学の問題をpythonで実装して解答の補足をしました.確かにどんな素数を与えても素数は残りました.約分しても素数が残ります.手で解いた数学の問題の証明に適当な素数や自然数の値を与えて計算しても素数が残りました.実装も正確に出来ました.
今回はほむらちゃんが解いている数学の問題を題材にしました.まどマギに限らず,時をかける少女の主人公が数学の小テストを解くシーンがあります.小テストでは三角関数を解いていたので次回は三角関数を題材にして本記事と同様にpythonで実装したいと思います.
ここまで記事を読んでいただきありがとうございました.
※ウマ娘の声をフーリエ変換した記事も書いて発信しています.suzuが私です.興味がある方はぜひご覧ください!
https://vigne-cla.com/31-1/#toc5
※noteも始めました.
https://note.com/madoka235/n/nbba2153326e1
ぜひフォローよろしくお願いします!!!!
参考文献
[1]"魔法少女まどかマギカ10周年"
https://10th.madoka-magica.com/
[2]"魔法少女まどかマギカ"
https://ja.wikipedia.org/wiki/%E9%AD%94%E6%B3%95%E5%B0%91%E5%A5%B3%E3%81%BE%E3%81%A9%E3%81%8B%E2%98%86%E3%83%9E%E3%82%AE%E3%82%AB
[3]"まどマギに出てきた数学の問題とちょっとした解説"
https://tiro-finale.hatenablog.com/entry/2018/12/22/234112
[4]"5分でわかる!nCr と2項定理"
https://www.try-it.jp/chapters-6357/sections-6358/lessons-6367/
[5]"順列と組み合わせの公式とその違い【問題付き】"
https://rikeilabo.com/formula-and-diferrence-of-permutation-combination