【发布时间】:2012-11-26 07:34:36
【问题描述】:
我已经搜索了我能想象到的每个站点,但无法确定 ruby 1.8 用于在 mathn 下的 Prime 类中创建素数列表的基本算法。以下是 succ 方法的可运行版本,调用 100 次(为了找到第 100 个素数)。有谁知道这是怎么回事?
number_of_primes = 100
seed = 1
primes = Array.new
counts = Array.new
while primes.size < number_of_primes
i = -1
size = primes.size
while i < size
if i == -1
seed += 1
i += 1
else
while seed > counts[i]
counts[i] += primes[i]
end
if seed != counts[i]
i += 1
else
i = -1
end
end
end
primes.push seed
counts.push (seed + seed)
end
puts seed
实际代码当然是:http://ruby-doc.org/stdlib-1.8.7/libdoc/mathn/rdoc/Prime.html
它看起来不像筛算法,因为没有预定义的列表可供筛选,它不是试验除法算法,因为没有除法或模运算。我完全被难住了。
【问题讨论】:
-
我认为这个问题很清楚,不知道为什么你得到了反对票和接近票。
-
如果我做了一些愚蠢的事情/发布了一些不清楚的东西,我不介意被否决。但是,如果投反对票的人告诉我原因以便我修复它,那就太好了。