0

我不是程序员,但我正在学习,

有人可以帮我理解 FFT 是什么吗?如何在 python 代码中实现它,例如生成从 1 到 10000 的素数的 python 代码?

也有人建议使用 NumPy,我下载并安装了它,但不知道它的作用。它与FFT有关吗?

任何帮助,将不胜感激。

问候, babsdoc

4

2 回答 2

1

好的,我将忽略有关 fft 的所有内容(它与信号处理有关,根本与质数无关)。

最著名的基本和著名的方法是埃拉托色尼筛法。维基百科有一个很好的视觉示例来说明它是如何工作的。

在(未经测试的)Python 中,您可以按如下方式对其进行编码:

max_val = 1000
seive = range(max_val)
seive[0] = None  # 1 is not prime!
for x in range(1, max_val):
    if seive[x]:
        print "{prime} is prime.".format(prime = x)
        # now remove multiples of prime x from the seive
        y = 2*x 
        while y <= max_val:
            seive[y] = None
            y = y + x
于 2012-08-20T18:21:08.990 回答
0

使用此处建议的函数“Python:检查数字是否为素数”

我建议您使用以下代码:

def isprime(number):  
if number<=1:  
    return 0  
check=2  
maxneeded=number  
while check<maxneeded+1:  
    maxneeded=number/check  
    if number%check==0:  
        return 0  
    check+=1  
return 1 
prime_list = [i for i in xrange(1,1001) if isprime(i)]
print prime_list

>>> [3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, ...

将 xrange( 1,1001 ) 调整到您想要的范围,您将获得所有素数

于 2012-08-20T18:44:36.493 回答