10/01/20 19:14:59
>>357
% Prolog (その一)
一個の自然数mをキーボード入力から読み取ってこのゲームをたとえば1000ゲーム
繰り返して、平均何回のコイントスで勝負がつくか、シュミレーションして求める(_平
均コイントス数) :-
催促付き整数入力('A,Bが持つコイン数を入力してください :',M),
このゲームをたとえば1000ゲーム繰り返して、平均何回のコイントスで勝負が
つくか(1,M,_無効ゲーム数,_平均コイントス数),!.
このゲームをたとえば1000ゲーム繰り返して、平均何回のコイントスで勝負がつく
か(M,_無効ゲーム数,_平均コイントス数) :-
このゲーム(1,M,_有効コイントス総数,_無効ゲーム数),
\+(_無効ゲーム数 = 1000),
_平均コイントス数 is _有効コイントス総数 / (1000 - _無効ゲーム数).
このゲーム(N,_,0,0) :- N > 1000,!.
このゲーム(N,M,_コイントス総数,_無効ゲーム数) :-
コイントスシミュレーション(1,M,M,_トス数),
N2 is N + 1,
このゲーム(N,_,_コイントス総数の二,_無効ゲーム数),
_コイントス総数 is _コイントス総数の二 + _トス数,!.
このゲーム(N,M,_コイントス総数,_無効ゲーム数) :-
N2 is N + 1,
このゲーム(N,M,_コイントス総数,_無効ゲーム数の一),
_無効ゲーム数 is _無効ゲーム数の一 + 1,!.