このディレクトリの索引

http://hibari.2ch.net/test/read.cgi/tech/1311089619/580
#  モンテカルロ法を使って円周率を求めるものなんですが指定されたプログラム(下に載せました)に  
#  (1)全試行回数と結果を表示する間隔をscanf()で読みそれにしたがって処理が進むようにする。  
#  (2)各途中経過で求めたπの近似値のうち最もπの真値(=3.14159)に近い値とその時の試行回数を最後に表示させる。  
#  という2つの点を加えて改良しなければならないのですがどなたか教えていただけませんか?  
#   

限界試行回数(100000).

piの仮の真値(3.14159).

モンテカルロ法により円周率を求める(_試行回数,_円周率) :-
        限界試行回数(_限界試行回数),
        '乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(0,_限界試行回数,0,_試行回数,_円周率),!.

'0から1の乱数2つをペアにし、片方をx座標、もう1方をyとする'(_x,_y) :-
        _x is random(1001) / 1000,
        _y is random(1001) / 1000,!.

'乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(Max,Max,_内側に落ちた累積数,Max,_r) :-
        _r is (_内側に落ちた累積数 / Max) * 4,!.
'乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(_試行回数,Max,_内側に落ちた累積数,_試行回数,_r) :-
        piの仮の真値の誤差範囲に入った(_内側に落ちた累積数,_試行回数,_r),!.
'乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(N,Max,_内側に落ちた累積数,_試行回数,_r) :-
        '新しい乱数ペアは円の内部にある'(N,_内側に落ちた累積数,N2,_内側に落ちた累積数2),
        '乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(N2,Max,_内側に落ちた累積数2,_試行回数,_r).
'乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(N,Max,_内側に落ちた累積数,_試行回数,_r) :-
        N2 is N + 1,
        '乱数のペアをn個のうち半径1の円の内部に落ちた点の数rを数える'(N2,Max,_内側に落ちた累積数,_試行回数,_r).

piの仮の真値の誤差範囲に入った(_内側に落ちた累積数,_試行回数,_r) :-
        _試行回数 > 0,
        piの仮の真値(_piの真値),
        _r is (_内側に落ちた累積数 / _試行回数) * 4,
        _piの真値 is floor(_r * 100000 + 0.5) / 100000,!.

'新しい乱数ペアは円の内部にある'(N,_内側に落ちた累積数,N2,_内側に落ちた累積数2) :-
        '0から1の乱数2つをペアにし、片方をx座標、もう1方をyとする'(_x,_y),
        ピタゴラスの定理を使って座標点が円の内部であるか判定する(_x,_y),
        N2 is N + 1,
        _内側に落ちた累積数2 is _内側に落ちた累積数 + 1,!.

ピタゴラスの定理を使って座標点が円の内部であるか判定する(_x,_y) :-
        1.0 >= _x * _x + _y * _y.

'新しい乱数ペアは円の内部にある'(N,_内側に落ちた累積数,N2,_内側に落ちた累積数2) :-