【发布时间】:2011-05-03 01:34:23
【问题描述】:
我想编写一个函数来使用尾递归查找 C(n,k),非常感谢您的帮助。
我已经达到了:
(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)))))
使用the following property of the binomial coefficients。
但我不知道如何使递归调用成为每个实例执行的最后一条指令,因为最后一条是产品。我一直在尝试使用辅助功能,我认为这是唯一的方法,但我还没有找到解决方案。
【问题讨论】:
标签: recursion lisp tail-recursion binomial-coefficients