2

在 Common Lisp 中计算阶乘的最快方法是什么?首先有尾尾递归

(defun factorial (n &optional (acc 1))
(if (<= n 1)
   acc
   (factorial (- n 1) (* acc n))))

但这是最快的方法吗?

4

1 回答 1

1

您已经实现了计算阶乘的朴素算法。有几个具有更好的渐近性能,例如参见http://www.luschny.de/math/factorial/FastFactorialFunctions.htm

最快的是基于阶乘的素数分解。

于 2013-10-01T09:16:23.927 回答