Upload
shoko-kondo
View
236
Download
1
Embed Size (px)
Citation preview
プログラミングで数を楽しむ
2016.10.05 近藤 祥子
~数学者のためのプログラム勉強会~
ABOUT ME
▸ Hackers Bar(ハッカー・週 1)▸ XTREME DESIGN(技術秘書 )▸ ダイヤモンドメディア (エンジニア )
▸ 元・証券会社 (エンジニア )▸ 元・ソシャゲ会社 (エンジニア )
▸ @shoko3168▸ fb.com/shoko3168
六本木のバー
依頼主 プロジェクター
まず遊んでみましょう
例題 1.より起きやすい事象はどっち?
百万回のコイン投げ
Q. コイン (※) を1000000 回投げたとき , 表が出る
回数がちょうど500000 回である確率と ,
495000 回以下である確率とではどちらが大きい
か , また , 大きいほうは小さいほうの何倍ほどか .
※ 表が出る確率も裏が出る確率も 1/2 のコイン
岩沢宏和 . " 確率パズルの迷宮 ". 日本評論社 , 2014, p.14
ルールの確認
▸ コインを 1 回投げます
▸ 表だったら 1 カウント
▸ 100 万回投げた後、カウントはいく
つ?
正解発表します
▸ A. 「 500000 回表が出る」の方が発生しやすい
▸ B. 「表が 495000 回以下」の方が発生しやすい
▸ C. ちょうど同じ位
正解は
▸ A. ちょうど 500000 回表が出る方が、はるかに起きやすい
▸ 更に、 B. 495000 回以下と比べると
天文学的に (1020 倍ほど ) 大きい確率
> 495000回以下500000回
本当に?
現状
495000 回以下の
「出ない感」がピンと来ない
疑うわけではないけど・・・
495000回以下
天文学的確率
実際にやってみよう
× 1000000 回 × 10000 回ぐらい
495000回以下
コンピュータにやらせてみよう
簡単なプログラムを書きます
プログラミング
ソースコード
1000000 回コインを投げるよ
コイン投げを10000 回試行するよ
495000回以下
コイン投げた
結果 1
495000回以下
もうちょっと遊びます
Excel にこの実行結果をはりつけて
結果 2
495000回以下
A.500000 回ジャストは
10000 回中 4 回出た
他の遊び方
例題 2.フェルマーの最終定理
3 以上の自然数 n について、xⁿ + yⁿ = zⁿ となる1 以上の自然数 x 、 y 、 z の組が存在しない
32 + 42 = 52
9 + 16 = 25
1442 + 1652 =2192
あるけど アリエナイ
1303 + 1353≠1673
1203 + 1553≠1763
「あり得ない感」がピンと来な
い
同じパターンで恐縮ですが・・・
xⁿ + yⁿ = zⁿ はなくても、
xⁿ + yⁿ = zⁿ±1 ~ 3 程度の誤差な
ら
大量にあったりするの?と初めて出会った時思い
今度は 1 行で探してみる
1 ~ 20 くらいで探してみる
[(x, y, z, d)|d<-[-7..7],z<-[1..20], y<-[1..z-1], x<-[1..y], z^3+d==y^3+x^3]
プログラミング
ソースコード許容誤差
z が取りうる範囲
https://tryhaskell.org/
X が取りうる範囲Y が取りうる範
囲知りたい条件(フィルター)
TRY HASKELL
Λ [(x, y, z, d)|d<-[-7..7],z<-[1..20], y<-[1..z-1], x<-[1..y], z^3+d==y^3+x^3]
[(1,1,2,-6),(5,6,7,-2),(6,8,9,-1),(9,10,12,1),(4,4,5,3)]
20まで探索しただけでも
意外とある!
例題 3.初見の問題
Twitter で流れてくる面白問題の答え合わせをしたり
※完全数 :[6,28,496,8128...]
つたえたかったこと
▸ 1つ1つの思いつきを全部シミュレーションしてい
たら10万年あっても足りない!
▸ コンピュータがなかったら、コイン投げ続けるだけ
の人生だった
あまった時間で作ったもの紹介
Place your screenshot here
素数百人一首
Place your screenshot here
素数判定&タイマー
挑戦者求む
2 時間で作ったシリーズhttp://primedaifugo.xyz/carta
他の人の判定表示
@ shoko3168