Quiero programar una función para encontrar C (n, k) utilizando recursividad de cola, y agradecería mucho su ayuda.Coeficiente binomial usando recursividad de cola en LISP
he llegado a esto:
(defun tail-recursive-binomial (n k)
(cond ((or (< n k) (< k 0)) NIL)
((or (= k 0) (= n k)) 1)
(T (* (tail-recursive-binomial (- n 1) (- k 1)) (/ n k)))))
Usando the following property of the binomial coefficients.
Pero no sé cómo hacer que la llamada recursiva sea la última instrucción ejecutada por cada instancia, ya que allí la última es el producto. Lo he intentado usando una función auxiliar, que creo que es la única, pero no he encontrado una solución.
Muchas gracias. Estaba buscando una solución como la primera (más similar a otras funciones que he creado o visto), pero me encanta la segunda, realmente elegante. – jesusiniesta