mod, modp, mods - m を法とする整数上での計算
使い方
e mod m
modp(e, m)
mods(e, m)
`mod`(e, m)
パラメータ
e - 代数式
m - ゼロでない整数
|
説明
|
|
•
|
mod 演算子は、式 e を m を法とする整数上で評価します。因数分解を含む、有限体上の演算と有限体上の多項式や行列の演算を行う機能が組み込まれています。
|
•
|
演算子構文 e mod m は、関数 `mod`(e,m) を呼び出すことと同値です。環境変数 `mod` は、modp 関数か mods 関数のどちらかを割り当てます。(デフォルトで) modp が割り当てられたとき、m を法として正の整数が使われます。すなわち、すべての有理数の係数が、範囲 [0,abs(m)-1] 内の整数になるでしょう。 mods の値が割り当てられたとき、対称な表現が使われます。すなわち、すべての有理数の係数が、範囲 [-iquo(abs(m)-1,2), iquo(abs(m),2)] 内の整数になるでしょう。
|
•
|
法 m が素数のとき、すべての係数算術は、m を法とする整数からなる有限体で行われます。標数 m の q = m^n 元体の要素は、alpha を m を法とする整数のなす有限体上の単純拡大とするとき、aplha の多項式として表されます。付加された元 aplha は、m を法とする整数上の最高次の係数が1の n 次の1変数既約多項式の根 (RootOf) です。RootOf および下記の例を参照して下さい。
|
•
|
有限環や有限体上の多項式演算や行列演算に対する以下の関数は、mod と使うことができます。より詳しくはヘルプを参照して下さい。
|
Content Det DistDeg Divide Eval
Expand Factor Factors Frobenius Gausselim
Gaussjord Gcd Gcdex Hermite Interp
Inverse Issimilar Lcm Normal Nullspace
Power Powmod Prem Primfield Primitive
Primpart Quo Randpoly Randprime Rem
Resultant Roots Smith Sprem Sqrfree
taylor
•
|
i が整数のとき、i^n mod m を計算するために、この「自明な」構文を使用するのは不適切です。なぜなら、ベキ乗は m を法とする簡約の前にまず整数上で実行されるからです (非常に大きな整数になるかもしれません)。むしろ、不活性な演算子 &^ を i &^ n mod m のように使うべきです。 後者の形では、ベキ乗は mod 演算によってうまく実行されるでしょう。同様に Powmod(a,n,b,x) mod m は、(a と b が x の多項式であるとき) 初めに a^n mod m を計算せずに Rem(a^n,b,x) mod m を計算します。
|
i+j mod m; i-j mod m; i*j mod m;
j^(-1) mod m; i/j mod m;
|
後者の場合、m を法として i*j^(-1) を実行するでしょう。
|
•
|
mod 演算子の左優先順位は、他の算術演算子より低い (すなわち拘束力が小さい) です。その優先順位は、ちょうど +, - より高く、 *, / より低くなっています。
|
•
|
mod 関数にはユーザが定義するためのインタフェースがあります。たとえば、ユーザが手続き `mod/f` を定義したとき、演算 f(x,y) mod 23 は、関数 `mod/f`(x,y,23) を呼び出します。
|
•
|
mod 演算子は、等式、多項式の係数、およびリストと集合の成分上へ自動的に写像されます。
|
•
|
mod は環境変数なので、手続き本体の内部での mod に対するいかなる割り当ても、手続きから抜け出ると解除されます。
|
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
| (2.4) |
| (2.5) |
| (2.6) |
>
|
a := 15*x^2+4*x-3 mod 11;
|
| (2.7) |
>
|
`mod` := mods:
b := 3*x^2+8*x+9 mod 11;
|
| (2.8) |
| (2.9) |
| (2.10) |
>
|
Divide(a,g,'q') mod 11;
|
| (2.11) |
| (2.12) |
| (2.13) |
| (2.14) |
>
|
alias(alpha=RootOf(y^2+2*y-1)):
Normal(1/alpha) mod 5;
|
| (2.15) |
>
|
Factor(x^3+2,alpha) mod 5;
|
| (2.16) |
| (2.17) |
|
|