ttの日記: 数学的センス不足 11
日記 by
tt
かなり前にfaireal.netあたりで話題になっていた奴ですがー。
日能研だったかの電車釣り広告にあるテストがもとのはなし。
「正方形とそれに内接する円を書きます。正方形の中にランダムに点をx個打ちます。円の中にある点の数はいくつになることが一番多いでしょう」
というのを計算するのにrubyの勉強を兼ねてrubyで書いてみました。
瞬間的に考えて (円周率)/4*x を四捨五入した値、と思ってしまうわけですが、これがそうじゃないんですよね… 色々計算しているんですが、法則性が分かりません。切り上げでも切り下げでも四捨五入でもない。
センス不足ですかね。うーむ。うぐぅ。
最頻値 (スコア:2, 参考になる)
問題に読めます。p=(円周率)/4として、
a!/x!/(a-x)!*p^a*(1-p)^a
が一番大きくなるaの値が欲しいってことかと。
階乗をスターリングの公式で近似すると、
あとは微分して0とおいて、停留点を求めればよいです。
小学生向けじゃない解き方ですが・・・。(滝)
Re:最頻値 (スコア:1)
でした。
Re:最頻値 (スコア:0)
#奥が深い質問。(w
π (スコア:0)
Re:π (スコア:0)
Aという値は学ぶが、Bという値を使用しても良いという話だし。
#精度が状況によってどこまで必要か、という判断による。
Re:π (スコア:0)
モンテカルロ法 (スコア:2)
昔、大学の数学の教職課程で Mathematica を使ってなんか面白い授業を考えろって言われて、同じように円周率をモンテカルロ法で求めるってのをやってみたけど、Mathematica 様でやった結果もちょっと残念な感じでしたよ。
--- show mpls ldp neighbor
Re:モンテカルロ法 (スコア:1)
--- show mpls ldp neighbor
もしかすると (スコア:1)
Re:もしかすると (スコア:1)
計算コストが少なく、かつ良質の乱数を出すようです。
ソースも公開 [hiroshima-u.ac.jp] されていますし。
# まあ、モンテカルロ法で精度を出そうとすると大変なんですけどね。
高校生になったつもりで (スコア:1, 参考になる)
P(a) = { x! p^a (1-p)^(x-a) } / { a! (x-a)! } となります。
このとき少し計算すると P(a+1)/P(a) - 1 = { px + p - 1 - a } / { (a+1)(1-p) }
となることが分かりますから、
P(a+1) >=< P(a) ⇔ a <=> px + p - 1 (不等号/等号同順)
であること(単峰性)が分かります。したがって
a = floor(px + p)
のときにP(a)が最大となります。pは1/2より大きいのでttさんの期待された round(px)と一致したり1大きかったりします。