/*モンテカルロ法を用いて円周率を求めるプログラム*/ #include #include int main() { int m; printf("試行回数(ランダムに打つ点の個数)を入力して下さい。 ―"); scanf("%d", &m); /*mが各自が入力したランダムに打つ点の個数になります*/ printf("試行回数が%d回のとき、\n",m); { int i; double x,y,pi,n=0.0; for(i=0;i モンテカルロ法と呼ばれる方法で円の面積を求めるプログラムを作成しましたので紹介します。モンテカルロ法とは、乱数を使って数値計算を行う手法の総称です。この乱数を使う発想を利用して円の面積を求めます。モンテカルロ法を利用した円の面積の求め方円の 2つ目はモンテカルロ法でランダムに点打って楕円内の数数えて割合を出す感じで。 (このブログを3日坊主で終わらせないためにこの記事書いたなんて言えない。 暇つぶしがてら、モンテカルロ法で円周率をシミュレーションしてみました。円周率という神秘的で秩序だった定数を、乱数により近似するというアイデアの実装はなかなか楽しいものです。シミュレーションは全て、統計解析言語rで実装しています。 では最後に楕円の体積を求めてみましょう。 これは楕円の面積を求めた方法と手順は同じで、もう既に手法は紹介し尽くしているので結構簡単に結果を導くことができます。 楕円体の体積 . 楕円体 \(\frac{x^2}{a^2}+\frac{y^2}{b^2}+\frac{z^2}{c^2}\leq 1\) \(-a\leq x\leq a\) 前回、モンテカルロ法で楕円の面積を求めたが 1 Core しか使ってなくて、マルチスレッドにしたら早くなるんじゃないかと OpenMP でのマルチスレッドを試してみた。 4Core CPU (Intel i5-4690) で、マルチスレッドは効果があるのか? 今回は、面積を求めたい領域(斜線部分)がすっぽり入る四角形を考えて(黒い枠部分)、その中に適当に点を一つ打ちます。 そして、その点が斜線部 モンテカルロ法はこのように、ランダムな数字をたくさん発生させた時、その偏りが少なくなっていく性質を利用したものです。 今回の考え方. ちなみにC言語。 1つ目は台形法で楕円(a=3,b=2)の面積求めて除しただけ.