相关疑难解决方法(0)

如何在Python中实现有效的素数无限生成器?

这不是作业,我只是好奇.

INFINITE是这里的关键词.

我希望在primes()中使用它作为p.我相信这是Haskell中的内置函数.

所以,答案不能像"Just do a Sieve"那样天真.

首先,您不知道将消耗多少连续素数.好吧,假设你可以一次编制100个.您是否会使用相同的Sieve方法以及素数公式的频率?

我更喜欢非并发方法.

感谢您阅读(和写作;))!

python primes generator

60
推荐指数
5
解决办法
2万
查看次数

Java 8:流和Eratosthenes的Sieve

Eratosthenes的Sieve可以在Haskell中非常巧妙地实现,使用懒惰生成无限列表,然后从尾部删除列表头部的所有倍数:

primes :: [Int]
primes = sieve [2..]
sieve (x:xs) = x : sieve [y | y <- xs, y `mod` x > 0]
Run Code Online (Sandbox Code Playgroud)

我正在尝试学习如何在Java 8中使用流,但我想出是否有一种方法可以在Java中实现与上面的Haskell代码相同的结果.如果我将Haskell惰性列表视为等同于Java流,似乎我需要使用以2为首的流并生成一个删除了所有2的倍数的新流,然后获取该流并生成所有流的新流删除3的倍数,并...

我不知道如何继续.

有没有办法做到这一点,或者当我试图将Java流视为与Haskell列表相当时,我是在欺骗自己?

java primes haskell sieve-of-eratosthenes java-stream

7
推荐指数
1
解决办法
1087
查看次数