1
29
下面是另一种庆祝
这个
|
2
21
我偶然发现一个 F# implementation ,所以所有的学分都是他的。我只是把它转给了克洛朱尔:
|
3
12
派对很晚了,但我将提供一个使用Java位集的示例:
在2014 Macbook Pro(2.3GHz Core i7)上运行此程序,我得到:
|
4
11
请参见下面的最后一个示例: http://clojuredocs.org/clojure_core/clojure.core/lazy-seq
|
5
4
|
6
3
在10米的堆栈大小下,我在2.1Gz的macbook上用大约33秒的时间就能得到1001th prime。 |
7
3
所以我刚从Clojure开始,是的,这在Euler项目上出现了很多,不是吗?我写了一个相当快速的试算除法素数算法,但是在每次除法都变得非常缓慢之前,它并没有太大的扩展性。 所以我又开始了,这次用筛分法:
使用和速度:
我对这个速度很满意:它的REPL快用完了,运行速度是2009年的MBP。最快的是,因为我完全避开了惯用的Clojure,而是像猴子一样绕来绕去。它的速度也快了4倍,因为我使用了一个瞬态向量来处理筛子,而不是保持完全不变。 编辑: |
8
2
下面是一个简单的筛选方案: http://telegraphics.com.au/svn/puzzles/trunk/programming-in-scheme/primes-up-to.scm 这里有一个10000以下的质数:
|
9
1
首次提交供比较: this prime number generator 从Python到Clojure。下面返回一个无限延迟序列。
用法:
编辑:
性能比较,其中
|
10
0
使用Java数组
使用和速度:
|
11
0
我刚开始使用Clojure,所以我不知道它是否好,但这里是我的解决方案:
|
12
0
在来到这个主题并寻找一个比这里已有的更快的替代方案之后,我很惊讶没有人与下面的链接 article by Christophe Grand :
|
13
0
已经有很多答案了,但是我有一个替代的解决方案,它可以生成一个无穷的素数序列。我也有兴趣提出一些解决方案。
本杰明@
https://stackoverflow.com/a/7625207/3731823
是
国家卫生局@
https://stackoverflow.com/a/36432061/3731823
是
我的实现是
报告的数字(计算前N个素数的时间,以毫秒为单位)是运行5次之后最快的,两次实验之间没有JVM重新启动,因此您的里程可能会有所不同:
|
14
0
如果你不需要一个懒惰的解决方案,你只需要一个素数序列低于某个限制,那么直接实现埃拉托舍内斯筛是相当快的。这是我用瞬变的版本:
|
15
0
很地道,也不错
|
lightning_missile · 词法范围和共享对象 6 年前 |
Alexandru Popa · SBCL中奇怪的宏扩展错误 6 年前 |
Jacky · 编辑列表中的每个偶数索引元素 6 年前 |
HappyFace · lisp典型缩进约定背后的规则是什么? 6 年前 |
Jorge · 在公共Lisp中初始化计数器变量 6 年前 |
Rorschach · cl循环破坏性修改cons单元 6 年前 |