カラツバ法

From Wikipedia, the free encyclopedia

カラツバ法(カラツバほう)とは、主に多倍長乗算乗算アルゴリズム英語版において、乗算の回数を4分の3にするアルゴリズムである。加減算の回数は増加するが、乗算コストはそれより遥かに大きいため、結果として演算コストそのものもほぼ4分の3となる。 カラツバが1960年に発見し、発見者のアナトリー・カラツバロシア語版ロシア語: Карацуба Анатолий Алексеевич)の名前を取ってカラツバ法、あるいは単にカラツバとも呼ばれる。

従来の乗算の計算量 だったが、Karatsuba法の再帰的適用により、≒1.585)まで計算コストが抑えられる。

アルゴリズム

単純な例として、数と数の積を求める ()。

まず、数と数をそれぞれ上位・下位の2つに分割する。 分割の基数を (例えば3桁ずつに分割するなら )とすると、

これら z0, z1, z2 を求めるための乗算を Karatsuba以前の方法 (Long multiplication) で行うと、乗算を4回行うことになる。

Karatsubaの方法では、乗算を3回で済ませられる。

計算例

とすると、

関連項目

Related Articles

Wikiwand AI