正方形の面積を1、扇形の面積をπ/4とし、0以上1未満の疑似乱数数列(実数)のペアを1000組作ることで正方形と扇形の面積比を近似的に求めそこから計算される円周率を表示せよ。
という問題が出されがんばってみたのですが全く分かりません。。。
main関数とは違う部分で円周率を求める部分を作る。double変数、for文、if文を使う。return文の返り値に円周率の近似値を設定する。rand関数を含む割り算を使う。ことは確かなのですが…
どなたか知恵をお借りできませんか?
疑似乱数数列を使って円周率を求める
Re:疑似乱数数列を使って円周率を求める
「0以上1未満の疑似乱数数列(実数)のペア」というのは、1辺の長さが1の正方形
の中にランダムに打たれた点の事です。
その点の中で扇型の中に入った点が何個あるかカウントできれば、
点の総数と扇型の中に入った点の個数の比率で扇型の体積の近似値は求まります。
これを4倍すれば円周率の近似値も求まりますね。
点が扇型の中に入っているかどうかは円の方程式でも使えばいいでしょう。
後は0以上1未満の実数の疑似乱数の求め方が分かればできるはずです。
まあ、rand()/(RAND_MAX+1.0) ってだけだと思いますが。
の中にランダムに打たれた点の事です。
その点の中で扇型の中に入った点が何個あるかカウントできれば、
点の総数と扇型の中に入った点の個数の比率で扇型の体積の近似値は求まります。
これを4倍すれば円周率の近似値も求まりますね。
点が扇型の中に入っているかどうかは円の方程式でも使えばいいでしょう。
後は0以上1未満の実数の疑似乱数の求め方が分かればできるはずです。
まあ、rand()/(RAND_MAX+1.0) ってだけだと思いますが。
Re:疑似乱数数列を使って円周率を求める
> という問題が出されがんばってみたのですが全く分かりません。。。
どこまでがんばったのか、途中経過でよいですからソースコードを見せてください。
どこまでがんばったのか、途中経過でよいですからソースコードを見せてください。