注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
累乗(x^n)を単純に計算すると、オーダーは O(n)となり効率が悪いです。そこで、nを2の累乗に分解して計... 累乗(x^n)を単純に計算すると、オーダーは O(n)となり効率が悪いです。そこで、nを2の累乗に分解して計算する高速化手法が一般に知られています。 たとえば、3 の 11 乗を計算する場合を考えましょう。11 は 1 + 2 + 8 に分解できます。 この累乗の系列では、ある値は一つ前の値を2乗することで計算できます。たとえば、こうです。 3^1 = 3 3^2 = 3 * 3 = 9 3^4 = (3^2)^2 = 9^2 = 81 3^8 = (3^4)^2 = 81^2 = 6561よって、3^11 は以下のように計算できます。 3^11 = 3^(1+2+8) = 3^1 × 3^2 × 3^8 = 3 × 9 × 6561 = 177147この方法のオーダーは、O(log2(n)) です。 遅延評価風に RSA のために高速な累乗計算を Haskell で実装したことがありまし
2011/09/27 リンク