在 Common Lisp 中计算阶乘的最快方法是什么?首先有尾尾递归
(defun factorial (n &optional (acc 1))
(if (<= n 1)
acc
(factorial (- n 1) (* acc n))))
但这是最快的方法吗?
在 Common Lisp 中计算阶乘的最快方法是什么?首先有尾尾递归
(defun factorial (n &optional (acc 1))
(if (<= n 1)
acc
(factorial (- n 1) (* acc n))))
但这是最快的方法吗?
您已经实现了计算阶乘的朴素算法。有几个具有更好的渐近性能,例如参见http://www.luschny.de/math/factorial/FastFactorialFunctions.htm
最快的是基于阶乘的素数分解。