performance - 如何使阶乘更快?

标签 performance algorithm clojure

我用 Clojure 编写了简单的阶乘程序。

(defn fac [x y] 
     (if (= x 1) y (recur (- x 1) (* y x)))
)

(def fact [n] (fac n 1))

怎样才能做得更快?如果能以更快的方式完成。

最佳答案

您可以在这里找到许多快速阶乘算法:http://www.luschny.de/math/factorial/FastFactorialFunctions.htm

正如上面所评论的,Clojure 并不是最好的语言。考虑使用 C、C++、ForTran。

请谨慎使用您使用的数据结构,因为阶乘增长得非常快。

关于performance - 如何使阶乘更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19112053/

相关文章:

从 csv LOAD DATA LOCAL INFILE 后 MySQL 变慢

c++ - 判断一个数是否为质数

php - 使用哈希减少 PHP 中的时间戳长度

sql - MySql:让这个查询更快……有办法吗?第二部分

java,计时三个不同的循环

sql-server-2005 - 计算列 : SQL or Locally in Entity Framework?

python - 在 Python Numba/NumPy 中实现的分摊 O(1) 滚动最小值

functional-programming - 帮助在 Clojure 中设计一个小的单元测试宏

clojure - 如何在 clojure 中编写可变参数 defmulti/defmethod

javascript - 如何在 Clojure 中编写一个保持状态的闭包?