いろんな言語で宿題スレ 第三編at TECH
いろんな言語で宿題スレ 第三編 - 暇つぶし2ch727:デフォルトの名無しさん
10/02/16 16:31:33
>>723
% Prolog 一枚のカードを作る/2 や トランプのようにならびを切る/4 は
% URLリンク(nojiriko.asia) 参照

ペアまたはフラッシュの出現度数(_回数,_ペアの度数,_フラッシュの度数) :-
  findsum([M1,M2],(for(1,N,_回数),トランプの準備([A,B,C,D,E|R]),役([A,B,C,D,E],M1,M2)),[_ペアの度数,_フラッシュの度数]).

役(L,1,0) :- sort(L,L1),ペア(L1),!.
役([A|R],0,1) :- sub_atom(A,1,1,_,_種類),フラッシュ(_種類,R),!.

ペア([A,B]) :- sub_atom(A,0,1,_,C),sub_atom(B,0,1,_,C),!.
ペア([A,B,C|R]) :- sub_atom(A,0,1,_,E),sub_atom(B,0,1,_,E),sub_atom(C,0,1,_,E),ペア(R),!.
ペア([A,B,C|R]) :- sub_atom(A,0,1,_,E),sub_atom(B,0,1,_,E),\+(sub_atom(C,0,1,_,E)),!.
ペア([A|R]) :- ペア(R).

フラッシュ(_,[]) :- !.
フラッシュ(A,[B|R]) :- sub_atom(B,1,1,_,A),フラッシュ(A,R).

トランプの準備(X) :-
  findall(U,(for(1,N,52),一枚のカードを作る(N,U)),_整列したカード),
  トランプを切るようにならびを切る(41,53,_整列したカード,X),!.



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch