数論関連のアルゴリズム(アルゴリズムのみ)

1.BSGS

目的:形式$ A ^ X \解決するには、当量Z(素数です)。

溶液:

暴力、P-1列挙および検証に暴力0、O(N)の複雑さを考えます。

最適化の考慮事項は:アルゴリズムを前処理によって加速考えてみましょう。

$$ A ^ X \当量Z(

{SQRT $ C = $ \を提供私たちのブロックサイズであり、

$$ IC + A ^ {J} \当量のZ(P MOD) $$

$$ A ^ J \当量のZの*のA ^ { - } IC(P MOD)$$

我々 $ 1たびに、我々は$を列挙するように$ C $ $ A ^ iは、プールの中にハッシュを$ ^ { - } IC *のz私たちは$ C $の値が同時に発生するかどうかを検証することができます。

Oの複雑さ($ \ SQRT {N}

開発BSGSは:

$$ A ^ X \は、Z(P MOD)を$$当量

辺T = GCD(A、P)を服用中

元の式

。$$ 1-A ^ {X} * \ FRAC {A} {} T * T \当量\ FRAC Z {} {} T * T(MOD \ FRAC {P} {} T * T)$$

次に、今元の式は次のようになる

。$$ 1-A ^ {X} * \ FRAC {A} {} T \当量\ FRAC {Z}、{T}(MOD * \ FRAC {P} {T})$$

このプロセスは、A、Pの互いに素になるまで行われます。

zは途中で割り切れないとき明らかに、それは何の解決策ではありません。

今、元の式は次のようになる。

$$ XK} * {A ^ C \当量T(P MOD)$$

$ C $は、いくつかの間得られた他の多くの要因、および$ C $ $ $ Pで構成されているので、プライムもしなければなりません。

右へ乗算の逆の$ C $にオイラーの定理によって、あなたはその後、通常のBSGSを使用することができます。

前回数え答え$ A $は我々が行にまとめる$ K $の減少であると$ K $ことに注意してください。

おすすめ

転載: www.cnblogs.com/wuzewen/p/11121249.html