自分で問題を設定して、格闘していた。
結果的に満足行くレベルまで12時間以上かかった。
- 作者: 永野裕之
- 出版社/メーカー: すばる舎
- 発売日: 2016/08/23
- メディア: 単行本
- この商品を含むブログを見る
この本のP396、397の問題。
「誕生日のパラドックス」
複数人参加のパーティーでたまたま同じ誕生日がいる人の確率を参加者が2人の場合の確率、3人の場合の確率・・・と60人くらいまで出す(Pythonプログラミングを使って)というのが俺の今日のミッション。
手計算では日が暮れるのでパソコンにやってもらい、そのパソコンへの指示書を俺がPythonというプログラミング言語を使って作る。
そして、下のグラフをPythonのmatplotlibというモジュールを使って再現することが目的。
本に解法は載っている。
だったら簡単じゃないかと思うんだけど、俺は文系で芸術肌だから、理数系の関してはとても頭が悪い人間なのだ。
グループが
2人の場合→ 1 - (364 ÷ 365) =
3人の場合→ 1 - (364 ÷ 365) × (363 ÷ 365) =
4人の場合→ 1 - (364 ÷ 365) × (363 ÷ 365) × (362 ÷ 365) =
これを40人までやる。
曲者なのは階段のようにだんだん掛ける数が増えていく点。
試行錯誤、今までの知識を総動員した結果、たまたまうまく行ったのが始めてから10時間後くらい。
count = 2 k = 365 i = 365 for i in range(365, 306 , -1): k *= i - 1 ans = 1 - (k / 365 ** count) count += 1 print(ans)
計算部分はこんだけ。(60人)
たったこれだけ。
これがキモ。
ここさえできればあとは楽、飾りみたいなもん。
ここまで来るのに10時間コース。
ね、馬鹿でしょ?
文法的にうんこでも動きゃいいんだ。最近ひろゆきだって言ってた。
↓ひとまず形にしたもの。
import matplotlib.pyplot as plt xl = [] yl = [] count = 2 k = 365 i = 365 for i in range(365, 306 , -1): k *= i - 1 ans = 1 - (k / 365 ** count) count += 1 x = count - 1 y = ans * 100 print("{}人目が最初の一人と誕生日が同じ確率は{}%".format(x,y)) xl.append(x) yl.append(y) plt.plot(x, y,"o") plt.title("Probability of having people of the same birthday") plt.xlabel("People number(people)") plt.ylabel("Probability(%)") plt.grid(True) plt.yticks([0,10,20,30,40,50,60,70,80,90,100])
結果
2人目が最初の一人と誕生日が同じ確率は0.2739726027397249%
3人目が最初の一人と誕生日が同じ確率は0.8204165884781345%
4人目が最初の一人と誕生日が同じ確率は1.6355912466550326%
5人目が最初の一人と誕生日が同じ確率は2.713557369979358%
6人目が最初の一人と誕生日が同じ確率は4.046248364911154%
7人目が最初の一人と誕生日が同じ確率は5.623570309597536%
8人目が最初の一人と誕生日が同じ確率は7.433529235166903%
9人目が最初の一人と誕生日が同じ確率は9.462383388916674%
10人目が最初の一人と誕生日が同じ確率は11.694817771107768%
(中略)
40人目が最初の一人と誕生日が同じ確率は89.1231809817949%
(中略)
60人目が最初の一人と誕生日が同じ確率は99.4122660865348%
結局12時間くらいか。
おまけに、はてなブログにソースコードをキレイに上げるにははてな記法とやらで書かないといけないらしく、初はてな記法記事となった。
てかちゃんと表示されんのかね。
参考にしたはてなブログ
upura.hatenablog.com
この記事の所要時間:13時間くらい
起床は9時前。寝たのは1時半ごろ。
最近ずれてきてる。
散歩は買い出し少々。鮭の切り身とかトイレットペーパー買いました。
以上。
1年前
kusomamiren.hatenablog.com
足立区をウロウロした日。
生足率多しと書いているが、そういえば昨日生足の私服JKが遠くに見えたので道を引き返すという行動を取ったのを思い出した。
それにしてもはてな記法めんどくせーな。いちいちプレビューをみないと「見えない」。
やっぱり見たままモードが楽。