加快红宝石阵列功能 [英] speed up array functions in Ruby
本文介绍了加快红宝石阵列功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个发现素数,使他们在一个数组的简单方法,然后总结他们。什么是一些可能的措施,加快步伐?
I have a simple method that finds prime numbers, puts them in an array and then sums them up. What are some possible steps to speed it up?
def prime?(number, array)
array.each do |x|
if number % x == 0
return false
end
end
true
end
def sum_prime(number)
i = 0
prime = 1
output = [2]
while prime < number
if prime?(prime, output)
i += 1
output << prime if prime != 1
p prime
end
prime += 2
end
output.inject(:+)
end
sum_prime(200000)
是阵列#每个
好吗?我可以concatinate以不同的方式更快的结果?
is array#each
ok? Can I concatinate differently for faster results?
推荐答案
这应该工作。它采用他人的建议:
This should work. It uses others' suggestions:
require 'prime'
def sum_prime(limit)
Prime.each(limit).inject(0) {|sum, num| sum + num}
end
puts sum_prime(200000)
这篇关于加快红宝石阵列功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文