算額あれこれ

算額問題をコンピュータで解きます

Julia で「ハーディ・ラマヌジャン数」を

昔の記事を自分から見に行くということはほとんどないが,ときどき誰かが読んでくれたという記録に目がとまり,一体どんなことを書いたのかなと確認することがある。

ハーディ・ラマヌジャン数」もそのようなものだった。

それは,R で書いたプログラムであったが,今回 Julia で書いて,速度を比較してみた。

Julia のプログラムは

function ramanujan4()
    m = floor(Int, 9999^(1/3))
    x = (1:m) .^ 3
    z = freqtable([x[i] + x[j] for i=1:m, j=1:m if i < j])
    z[z .>= 2]
end

Benchmark によれば,実行時間の中央値は 56 μs であった。R は 29 ms だったので,Julia は R より,500 倍速いということだ。