我不是程序员,但我正在学习,
有人可以帮我理解FFT是什么吗?我如何在python代码中实现它,例如说一个python代码来生成从1到10000的素数?
也有人建议NumPy,我下载并安装它,但不知道它做了什么。它与FFT有关吗?
任何帮助都将不胜感激。
此致 babsdoc
答案 0 :(得分:1)
好的,我将忽略所有关于fft的事情(这与信号处理有关,而不是素数)。
最着名的基本和着名方法是seive of Eratosthenes。维基百科有一个很好的视觉示例,说明它的工作原理。
在(未经测试的)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
答案 1 :(得分:0)
使用此处的建议功能"Python: Checking if a number is prime"
我建议您使用以下代码:
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 )调整到您想要的范围,即可获得所有素数