いろんな言語で宿題スレ 第三編at TECH
いろんな言語で宿題スレ 第三編 - 暇つぶし2ch474:デフォルトの名無しさん
10/01/28 07:38:10
>>426
% Prolog >>473は利用しないことになってしまった。
累乗の計算の逆を行うプログラム(_乗算項,X) :-
  乗算項をならびに変換(_乗算項,L1),
  quicksort(L1,L2),
  累乗の計算の逆を行うプログラム項構成(L2,X).

乗算項をならびに変換(A,[A]) :- atomic(A),!.
乗算項をならびに変換((B*A),[A|R]) :-
  atomic(A),
  乗算項をならびに変換(B,R).

累乗の計算の逆を行うプログラム項構成([A],A) :- !.
累乗の計算の逆を行うプログラム項構成([A,A|R1],A ^ N) :-
  累乗の計算の逆を行うプログラム項部分構成([A,A|R1],[],A ^ N),!.
累乗の計算の逆を行うプログラム項構成([A,A|R1],A ^ N * Y) :-
  累乗の計算の逆を行うプログラム項部分構成([A,A|R1],R,A ^ N),!.
  累乗の計算の逆を行うプログラム項構成(R,Y),!.
累乗の計算の逆を行うプログラム項構成([A,B|R1],A * Y) :-
  累乗の計算の逆を行うプログラム項構成([B|R1],Y),!.

累乗の計算の逆を行うプログラム項部分構成([A],[],A ^ 1) :- !.
累乗の計算の逆を行うプログラム項部分構成([A,A|R1],R,A ^ N) :-
  累乗の計算の逆を行うプログラム項部分構成([A|R1],R,A ^ N1),
  N is N1 + 1,!.
累乗の計算の逆を行うプログラム項部分構成([A,B|R],[B|R],A ^ 1) :- !.


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