スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Ruby][アルゴリズム入門]モンテカルロ法

第一章「ウォーミングアップ」 目次

1-0 アルゴリズムとは
1-1 漸化式
1-2 写像
1-3 順位付け
1-4 ランダムな順列
1-5 モンテカルロ法
1-6 ユークリッドの互除法
1-7 エラトステネスのふるい

パイを求める

モンテカルロ法を用いて、π(パイ)の値を求める。

# encoding: cp932
NUM = 1000

circle_in = 0
NUM.times do |i|
  x = rand
  y = rand
  circle_in += 1 if (x * x + y * y <= 1)
end

pai = Float(4) * circle_in / NUM
puts "πの値=#{pai}" #=>3.175

乱数の回数を増やせば3.14に近づいていく。

楕円の面積を求める

# encoding: cp932

NUM = 10000

circle_in = 0

NUM.times do |i|
  x = 2 * rand
  y = rand
  circle_in += 1 if (x * x / 4 + y) <= 1
end

s = 4.0 * (2.0 * circle_in / NUM)
puts "楕円の面積=#{s}"

テーマ : プログラミング - ジャンル : コンピュータ

コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。