素数 - 加载时的数据

时间:2010-04-03 02:02:07

标签: ruby-on-rails ruby

我在Ruby on Rails中尝试如何找到素数。这是我的代码:

helper:app / helpers / test_helper.rb

module TestHelper                
  def prime_number? number     
    index = 2                    
    tmp = 0                      
    while index <= number        
      if tmp < 1                 
        if (number % index) == 0 
          tmp += 1               
        end                      
      else                       
        return false             
      end                        
      index += 1                 
    end                          
   return true                   
  end                            
end

和我的观点:app / views / test / index.html.erb

<% (2..100).each do |i| -%>
  <% if prime_number? i %>
    <%= i %>
  <% end -%>
<% end -%>

所以我的问题是:如何在计算时加载数据?我的意思是如果我在视图中将100替换为100000,那么当我的辅助方法计算时,如何在我的视图中查看数据? 我是否需要使用ajax或rails为其提供工具?

谢谢。

1 个答案:

答案 0 :(得分:1)

简短回答:是的,你需要AJAX。

更长的答案:你可以使用Prototype Helper periodically_call_remote来调查你的一个动作,并在列表的末尾添加新的素数。

但是存在一个问题,与C等本机操作系统语言相比,Ruby非常慢。如果你想获得最多的素数结果,我会在C中编写素数代码并找到一种机制来访问结果。一种方法是让你的C应用程序将素数写入文件,然后你可以将该文件拖尾以获得新的素数。我相信你可以找到一个在某处找到素数的C例子。

即使您要在Ruby中编写素数代码,您也必须将其作为与Rails应用程序分开的进程运行,以便不断计算质数,因此您可以更快地完成它。实际上,Ruby对于这个计算来说可能不会太慢​​,对两者进行基准测试会很有趣。