10/02/05 17:10:32
>>232
% Prolog
モンテカルロ法で円周率を計算する(_円周率) :-
モンテカルロ法で円周率を計算する(1,10000,0,_円周率),!.
モンテカルロ法で円周率を計算する(M,N,Y,X) :- M > N,X is 4.0 * Y / N,!.
モンテカルロ法で円周率を計算する(M,N,Y,X) :-
U1 is ((random mod 10000) / 10000) ^ 2,
U2 is ((random mod 10000) / 10000) ^ 2,
U1 + U2 =< 1.0,
Y2 is Y + 1,
M2 is M + 1,
モンテカルロ法で円周率を計算する(M2,N,Y2,X),!.
モンテカルロ法で円周率を計算する(M,N,Y,X) :-
M2 is M + 1,
モンテカルロ法で円周率を計算する(M2,N,Y,X),!.