在常见的lisp中计算阶乘的最快方法是什么?

时间:2013-10-01 09:10:27

标签: performance algorithm common-lisp

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

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

但这是最快的方式吗?

1 个答案:

答案 0 :(得分:1)

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

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