2021年4月27日火曜日

1のべき根を計算してみる (Root of unity) — D 言語篇

 rosettacode.org からコードをコピーして実行してみる。

 $ dmd roots_of_unity.d

$ ./roots_of_unity

#1: [1.000+0.000i]

#2: [-1.000-0.000i, 1.000+0.000i]

#3: [-0.500+0.866i, -0.500-0.866i, 1.000+0.000i]

#4: [-0.000+1.000i, -1.000-0.000i, 0.000-1.000i, 1.000+0.000i]

#5: [0.309+0.951i, -0.809+0.588i, -0.809-0.588i, 0.309-0.951i, 1.000+0.000i]

#6: [0.500+0.866i, -0.500+0.866i, -1.000-0.000i, -0.500-0.866i, 0.500-0.866i, 1.000+0.000i]

#7: [0.623+0.782i, -0.223+0.975i, -0.901+0.434i, -0.901-0.434i, -0.223-0.975i, 0.623-0.782i, 1.000+0.000i]

#8: [0.707+0.707i, -0.000+1.000i, -0.707+0.707i, -1.000-0.000i, -0.707-0.707i, 0.000-1.000i, 0.707-0.707i, 1.000+0.000i]


std.range を import して iota を利用し、

auto nthRoots(in int n)  pure nothrow {

   return n.iota.map!(k => expi(PI * 2 * (k+1)/n));

}

で計算する。

https://en.wikipedia.org/wiki/Root_of_unity  にあるは、上の #5 である。





0 件のコメント:

コメントを投稿

地球規模で増加し、国単位で減少し、地元で減ってゆくのが目にみえるようだ

 地元の回覧板で、このあたりの世帯数が 1033 になったことを知る。 今朝の新聞では、この国でこのところ海外永住者が増加している記事が一面に出ていた。 歴史的にみれば地球規模での人口移動は集落を越え、国境を越えてあったこと。 今さらのことでもなく、寂れてゆくところと繁栄するとこ...