範囲内の製品の製品を計算するプログラムを作成する必要があります。
次のコードを書きました。
mult(N,N,R,R).
mult(N,Nt,R,Rt):-N1=Nt+1,R1=Rt*(1/(log(Nt))),mult(N,N1,R,R1).
Nt
これにより、 ~N
の基本的な製品が実装され1/ln(j)
ます。私が理解している限り、Nt と N が等しいときに停止する必要があります。ただし、次の理由で機能させることができません。
?- mult(10,2,R,1), write(R).
ERROR: Out of global stack
次のエラー。SWI-Prolog のデフォルト ライブラリを使用せずにループを実装する他の方法はありますか?