Comment detail
π (Nested Flatten)面積から攻めるのはよく知られていますね。
「ビュフォンの針」を実装するのもありでしょう。
手でがんばった人
http://portal.nifty.com/2008/10/01/c/
applet
http://www.f.waseda.jp/takezawa/math/number/buffon/buffon.htm
「ビュフォンの針」は初めて知りました。 というわけで実装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Needle
LENGTH = 5
RAND_MAX = 10000
attr_reader :x1, :x2
def initialize()
@x1 = rand(RAND_MAX) + rand
@x2 = LENGTH * Math.cos(rand * 2 * Math::PI) + @x1
end
end
n = 10000
crossed = 0
n.times {
needle = Needle.new()
k1 = (needle.x1 / (2 * Needle::LENGTH)).to_i
k2 = (needle.x2 / (2 * Needle::LENGTH)).to_i
crossed += 1 if k1 != k2
}
pi = n.to_f / crossed.to_f
puts "pi = #{pi}"
|





匿名
#7769()
[
Java
]
Rating0/0=0.00
Rating0/0=0.00-0+
1 reply [ reply ]