中華風剰余定理
Latest Author
を、に対してとなる整数とし、とする。 この定理はであると述べている。
つまり、という連立線形合同方程式が与えられたとき、となる解が一意に存在する。
中華風剰余定理, 中国剰余定理, 中国人剰余定理, Chinese Remainder Teorem, CRT などと呼ばれる。
以外の環に対しても一般化できる。体上の多項式の場合が特に重要である。 体に対してとすると、であるので、これは多項式補間ということになる。
アルゴリズム
上記のからを復元するアルゴリズムを考える。 アルゴリズム版は定理と区別して"Chinese Remainder Algorithm (CRA)"や"Effective CRT"などとも呼ばれる。 ただし、その場合下記のLagrange CRAのみを指すことも多い。
前述のようにこの定理のアルゴリズムは多項式補間の一般化であるので、この記事では、アルゴリズムを多項式補間の場合の名前で呼ぶことにする。この呼び方は一般的ではない。
Lagrange CRA
定理の標準的な証明に使われる構成法である。Lagrange interpolation (ラグランジュ補間)の一般化となる。
各に対し、, とする。このとき、であり、となる。 ここでとすると条件を満たすことがわかる。
そのままの実装では、上でが次数1の場合(多項式補間の場合)、回の上の掛け算・足し算と回の上の逆元を求める時間計算量となる。上の場合も同じような時間計算量となる。
高速な乗算と逆元を求めるアルゴリズムを用い適切な分割統治アプローチを用いると、上やでが定数サイズの場合の時間計算量でも実装できる。これを"Fast CRA"と呼ぶことがある。
Newton CRA
が2の場合はこのアルゴリズムのほうが単純である。が小さい場合は特にこのアルゴリズムが高速になりうる。
と仮定する。, としたとき、とすると、は条件を満たす。
の場合、入力を分割して再帰的に適用する。 上やでが定数サイズの場合、左から1つずつ追加していくように分割すれば時間となる。 この場合、多倍長演算を全て実装しなくても、片方の引数が定数サイズの演算のみで実装できるため、実装が比較的簡単になる。 また、これはオンラインアルゴリズムと言える。
高速な乗算と逆元を求めるアルゴリズムを用いる場合は、入力を半分ずつに分割していくようにすれば時間で実装できる。
両方のアルゴリズムにいえることだが、が固定されている場合は、それのみによって決まる変数を事前計算しておくことで高速化できる。 特に逆元を求める操作は高価であるので、出来る限り事前計算しておくべきである。Newton CRAでは逆元を事前計算しておけば計算量をに落とせる。
参考文献
- Shoup, Victor. A computational introduction to number theory and algebra. Cambridge university press, 2009.
- Von Zur Gathen, Joachim, and Jürgen Gerhard. Modern computer algebra. Cambridge university press, 2013.