このディレクトリの索引

# 出典 :: C#,C#の宿題片付けます。 #434 # 問題文 # モンテカルロ法による円周率 # 1×1の正方形と1/4円を用いて円周率を求めるプログラムを作成したい # なお、関係式、及び正方形と1/4円の図は以下の様になる # π/4:1 = P : P + Q # π = 4P/P + Q = 4P/N # πは円周率、Pは円外にある点の数、NはP + Qとする モンテカルロ法により円周率を求める(N,Pi) :- モンテカルロ法により円周率を求める(0,N,0,H), P is H / N, Pi is 4 * P, writef('Pi = %w\n',[Pi]). モンテカルロ法により円周率を求める(M,N,H,H) :- M > N,!. モンテカルロ法により円周率を求める(M,N,H1,H) :- X1 is random(7717) / 7717, Y1 is random(7717) / 7717, U is X1 * X1 + Y1 * Y1, '1に収まっていればカウント'(U,H1,H2), succ(M,M2), モンテカルロ法により円周率を求める(M2,N,H2,H). '1に収まっていればカウント'(U,H1,H2) :- U < 1, H2 is H1 + 1,!. '1に収まっていればカウント'(U,H1,H1).