Wolfram Research製品ご購入サービスとリソース会社概要その他のWolframサイト
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.

Documentation / Mathematica / アドオンとリンク / 標準パッケージ / Algebra /

Algebra`PolynomialPowerMod`

このパッケージでは,素数および多項式を法とする多項式のベキ乗を効率的に計算する関数PolynomialPowerModを紹介する.PolynomialQuotientPolynomialRemainderにはModulusオプションのサポートが加えられる.また,大規模な素数の法が扱えるようにFactorFactorListPolynomialGCDModulusオプションも拡張する.

このパッケージの関数で使われる因数分解アルゴリズムは,D.E. Knuth著「Seminumerical Algorithms」(Addison-Wesley,1981出版)のセクション4.6.2で説明されている.まず,導関数を使って についての多項式 を無平方因子に分解する. を法とする 次因数分解は,のときの の最大公約数を求めることによって得られる.これは積算を繰返し使用して迅速に計算される.最後に,確率の因数分解アルゴリズムであるCantor-Zassenhausアルゴリズムを使って,結果を 次既約因子に分解する.

PolynomialPowerModの使用

パッケージをロードする.

In[1]:= <<Algebra`PolynomialPowerMod`

パッケージ関数のPolynomialPowerModは,組込み関数PolynomialModを使って多項式をベキ乗するよりも効率的である.

In[2]:= {Timing[PolynomialPowerMod[1 + x + x^2, 400,
{x^3 + x^2 + 1, Prime[4750]}]][[1]],
Timing[PolynomialMod[(1 + x + x^2)^400,
{x^3 + x^2 + 1, Prime[4750]}]][[1]]}

Out[2]=

PolynomialQuotientPolynomialRemainderModulusオプション

以下は についての2つの多項式である.

In[3]:= {f, g} = {(1 + x)^3 (1 + x^3), x^2 + 2};

PolynomialQuotientModulusオプションを使うことは,PolynomialModPolynomialQuotientの結果に適用することと同じである.

In[4]:= {PolynomialQuotient[f, g, x, Modulus -> 11],
PolynomialMod[PolynomialQuotient[f,g,x], 11]}

Out[4]=

PolynomialRemainderModulusオプションを使うことは,PolynomialModPolynomialRemainderの結果に適用することと同じである.

In[5]:= {PolynomialRemainder[f, g, x, Modulus -> 11],
PolynomialMod[PolynomialRemainder[f,g,x],11]}

Out[5]=

大規模な素数の法を扱うためのPolynomialGCD,Factor,FactorListの拡張

PolynomialGCDModulusオプションを使うことは,PolynomialGCDの結果にPolynomialModを適用することと同じである.

In[6]:= {PolynomialGCD[x^2-1,x-1, Modulus -> Prime[10^8]],
PolynomialMod[PolynomialGCD[x^2-1,x-1], Prime[10^8]]}

Out[6]=

このパッケージをロードすると,多項式は大きい素数を法として因数分解される.

In[7]:= Factor[1 + 2 x^3, Modulus -> Prime[10^7]]

Out[7]=



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information


 © 2008 Wolfram Research, Inc.  Terms of Use  Privacy Policy | [en] |
ニュースレターのご登録