タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

C++とKaratsubaに関するakakitのブックマーク (1)

  • 多倍精度整数の基礎 ( Karatsuba乗算編 ) - Qiita

    概要 前回の四則演算編では古典的乗算の実装について触れた. 古典的乗算は基的に, n 桁の多項式 $f_{n}, g_{n} \in \text{R}[x]$ から得られる積 $h_{2n} = f_{n} g_{n}$ を求めるのに指数時間 = $\text{O}(n^2)$ 回の乗算を必要とする. ここで $x$ は多項式の変数であり $\text{R}$ は乗算と加算において可換で単位元を持つ環 (Ring) とする. 多倍精度整数では $x$ は基数と見なされる. 以下の式は $n$ 次の積 $h_{2n} = f_{n} g_{n}$ を展開した図で 4 回の積が現れ, 更にそれら 4 つの乗算中でも再帰的な分割により, 同様に 4 回の乗算が必要な事が分かる. f_n g_n = (A_n + B_{n/2})(C_n + D_{n/2}) = A_{2n} C_{2n} +

    多倍精度整数の基礎 ( Karatsuba乗算編 ) - Qiita
  • 1