なんで Julia かと言えば、コードがほぼ数式連想 (ド・モアブルの定理) から記述できる。
たとえば、rosettacode.org にあるコードを引用すると、
nthroots(n::Integer) = [ cospi(2k/n)+sinpi(2k/n)im for k = 0:n-1]
println でこの定義を呼び出す。低次の例を試す。
println(nthroots(1))
...
出力は、次のようになった。
Complex{Float64}[1.0 + 0.0im]
Complex{Float64}[1.0 + 0.0im, -1.0 + 0.0im]
Complex{Float64}[1.0 + 0.0im, -0.4999999999999999 + 0.8660254037844387im, -0.5000000000000002 - 0.8660254037844385im]
ただ、64ビット浮動小数点の数値を比較してみると
最後のけたに誤差がある。
参考) √3 = 1.7320508075688772935...
0 件のコメント:
コメントを投稿