2016-03-31 1 views
0

Quelqu'un peut-il me dire quel est le problème avec mon code?logarithme base b dans prolog

logbN(1,_,0). 
logbN(N,B,Ans):- 
    N1 = N/B, 
    logbN(N1, B, A), 
    A is Ans + 1. 

Ceci est censé calculer log_b N et stocker le résultat à Ans je continue à sortir d'une erreur de pile locale

Répondre

1

Je viens tout compris pour quelqu'un d'autre qui a besoin de savoir comment faire cela.

logbN(1,_,0). 
logbN(N,B,Ans):- 
    N > 1, 
    N1 is N/B, 
    logbN(N1, B, A), 
    Ans is A + 1. 

j'avais 'A' et '' Ans mêlé

+0

On dirait que vous avez aussi remplacé '=/2' (incorrect) avec' est/2' (correct). – lurker

+0

@lurker Je l'ai bien fait. Merci d'avoir fait remarquer cela. –