除算を使用せずに階乗関数の逆関数を計算する Prolog プログラムを作成する必要があります。また、「関数の逆関数は必ずしも関数であるとは限らない」というメモも与えられました。私はこれを通常の階乗述語として持っています..
fact(0,1).
fact(N,F) :- N>0, N1 is N-1, fact(N1,F1), F is N * F1.
他の投稿で、引数を切り替えることができるはずだと読んだことがありますが、このバージョンではそうではないようです。誰かが理由を理解するのを手伝ってくれますか?