小さな未知の多項式で割ったときに、大きな固定多項式の残りを見つける


9

有限体で動作すると仮定します。この場で大きな多項式p(x)(たとえば、次数1000)が与えられます。この多項式は事前にわかっており、「初期フェーズ」で多くのリソースを使用して計算を行うことができます。これらの結果は、適度に小さいルックアップテーブルに格納される場合があります。

「初期段階」の終わりに、小さな多項式q(x)(たとえば、次数5以下)が与えられます。

「初期フェーズ」でいくつかの複雑な計算を行うことが許可されている場合、p(x)mod q(x)を計算する高速な方法はありますか?1つの明白な方法は、q(x)のすべての可能な値に対してp(x)mod q(x)を計算することです。これを行うより良い方法はありますか?

回答:


3

基本となるフィールドが非常に小さいため持っている場合は、次のアルゴリズムがうまく機能s

が固定次数dの既約であることがわかっているとします。次に、mod qx s d = xが成り立つことがわかります。したがって、を事前に計算するだけで十分です。qdqxsd=xp(x)modxsdx

一般に、は、既約多項式積に分解される場合があります。この場合、各個別に計算してを計算し、結果を一緒に結合する場合にも、同様の引数が適用されます。したがって、各を計算する必要があります。q = q 1q r p q 1q r p x q(x)q=q1qrpq1,,qrD "Dp(x)modxsdxdd


2

これを行うにはかなり高速な方法があると思います。未知多項式の係数ましょうであるので、いくつかの小さな数です。ここで、計算を開始します。ここで、。ここで、は大きく、は既知です。これは、としてを使用して次数を減らすことによって行います。最終的に得られるのは次数多項式で、その係数は多項式です(b i q = d i = 0 b i x i d pqbiq=i=0dbixidp = D i = 0 a i x i D a i a D x D = a Dp(modq)p=i=0DaixiDai<d1biaiqaDxD=aDbdi=1d1bdixDi<d1biai知られている)。これらの多項式は、を取得するとすぐに計算できます。q


-1

以下のこの投稿に関する優れたコメントを参照してください。:)


前処理; 入力: p(x)

  1. をとして因数ます。p(x)p(x)=i=01000(xiri)

  2. これを個別のルートとそれぞれの多重度テーブルとしてます。r j m jTrjmj

オンライン段階; 入力: q(x)

  1. 係数として。q x =q(x)q(x)=i=05(xiri)

  2. これを個別のルートとそれぞれの多重度リストとしてます。r ' j m ' jLrjmj

  3. ながら、空でない場合、次のルート/から多数削除で同様の用語及び任意の。L TLLT

  4. 変更されたテーブルからを読み取り、出力します。 Tp(x)modq(x)T


他のコメント:

  • 明らかに、テーブルをソートして、バイナリ検索(またはツリー)でアクセスしたいとします。T
  • (を次数にします。)出力を係数表現にしたい場合は、最後に一連のFFTを実行してを取得できます。時間。p x dp(x)OD p(x)modq(x)O~(d)
  • 形式化の方法によっては、事前にの項を再結合するさまざまな方法(動的プログラミングスタイル)の多くを事前計算して、乗算のほとんど(またはすべて)が単なるルックアップになるようにすることができます。支配的なコストは、ルックアップの数、つまりおおよそです。場合、これはほんの一握りの具体的な算術演算です。O log d d = 1000TO(logd)d=1000

2
どのフィールドにpを考慮していますか?この表現が元のフィールドに関してどのくらい大きいと思いますか?そして、変更されたテーブルと出力から読み取ると言うとき、どういう意味ですか?
David Eppstein 2013

2
これは、と両方が分割されているフィールドで操作している場合にのみ機能します。しかし、これはに依存しているようです。特に、だけの根を事前計算することはできません。さらに、そのような大きなフィールドでの根を計算するには時間がかかります(少なくとも); これは単純なアルゴリズムと同じです。q q p q | p |pqqpq|p|
David Harris
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.