プロセッサ集約型Eulerプロジェクトの質問で、Dより速く走ったので、Juliaには本当に感銘を受けた。 #303誰かが興味があれば。JuliaでBigIntsが遅くなっている
ジュリアの遅いBigIntsのように見えますか?私は彼らのパフォーマンスを読むので奇妙なはかなり良いです。
以下は、オイラーの漸化式を使用して15kのパーティション数を計算するJuliaプログラムです。
function eu78()
lim = 15000
ps = zeros(BigInt, lim)
function p(n) #applies Euler recurrence formula
if n < 0
return BigInt(0)
elseif n == 0
return BigInt(1)
elseif ps[n] > 0
return ps[n]
end
s = BigInt(0)
f = BigInt(-1)
for k = 1 : n
f *= -1
t1 = (k * (3k - 1)) ÷ BigInt(2)
t2 = (k * (3k + 1)) ÷ 2
s += f * (p(n - t1) + p(n - t2))
end
ps[n] = s
end
for i = 1 : lim
p(i)
end
println(ps[lim])
end
eu78()
3分43秒で実行され、132桁の応答が生成されます。
同等のPythonコードでpypyを実行するとわずか8秒かかります。
私は間違っていますか?
たぶん、私たちは同じ問題に昨日だけで走りました。 http:// stackoverflowに関する@jverzaniコメントを参照してください。com/a/37148134/2556061 – mschauer