看板 Ruby 關於我們 聯絡資訊
考慮以下代碼: prime = Array.new( 20000000, true ) prime[0, 1] = false, false for i in 2..( prime.length ** 0.5 ).floor if prime[i] j = i << 1 while j < prime.length if prime[j] prime[j] = false end j += i end end end 是以Sieve of Eratosthenes去產生一個長度20000000的質數表 以上是我目前試出最快的實作 但是也要40秒才跑得完 有趣的是如果內部迴圈用step方法反而會更慢 然而Python用相同的方法確可以達到18秒( C++和Java就別提了 ) Ruby是否能再優化呢 -- 自High筆記(半荒廢) http://legnaleurc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.224.125