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 に答える