PowerMod

PowerMod[a,b,m]

m を法として ab を与える.

PowerMod[a,-1,m]

m を法とした a の逆モジュロを与える.

PowerMod[a,1/r,m]

a の第 r 根のモジュロを与える.

詳細

  • PowerModはベキ剰余としても知られている.
  • 数値操作と記号操作の両方に適した数学関数である.
  • 合同算術,暗号学,乱数生成,プログラミングにおける循環作業によく使われる.
  • PowerMod[a,b,m]abm で割ったときの余りを与える.
  • PowerMod[a,b,m]における b の値は負でもよく,有理数でもよい.対応する逆モジュロや根が存在しない場合は未評価で返される.
  • PowerMod[a,b,m]は,正の b について,Mod[a^b, m]と同じ結果をはるかに効率よく与える.

例題

すべて開くすべて閉じる

  (3)

3を法としてを計算する:

数列を固定ベキでプロットする:

数列をベキを変化させてプロットする:

スコープ  (7)

数値評価  (4)

整数を使って計算する:

有理指数:

ガウス整数:

大きい数について計算する:

PowerModはリストに縫い込まれる:

TraditionalFormによる表示:

記号演算  (3)

Reduceを使って式を簡約する:

FindInstanceを使ってPowerModを含む式の解を求める:

PowerModを総和で使う:

アプリケーション  (6)

基本的なアプリケーション  (2)

9のPrimitiveRootを求める:

9を法として互いに素なすべての整数を PowerModを使って生成する:

が基底の擬似素数を認識する:

2が基底の1000より小さい擬似整数をすべて求める:

5が基底の1000より小さい擬似整数をすべて求める:

整数論  (4)

RSAのようなトイ暗号スキームを構築する.法から始める:

n を法とする乗法群の普遍指数を求める:

秘密鍵:

公開鍵:

メッセージを暗号化する:

それを解読する:

RSAのようなトイ暗号スキームを構築する:

循環攻撃を行う.出力の1つはテキストである:

アリスとボブは,素数 とその素数 を法とする原始根に公的に同意する:

次に,アリスとボブはそれぞれ秘密鍵を選ぶ:

次に,アリスはボブに を法とする を送り,ボブはアリスに を法とする を送る:

次に,ボブは を法とするを計算し,アリスは を法とする を計算する:

次が,彼らが共有している秘密の数である:

現行時刻をシードとして使う乱数生成器を作成する:

法と基底を選ぶ:

からまでの個の乱数を計算する:

特性と関係  (8)

PowerModは周期関数である:

Modを使ってPowerModを決定する:

ModularInverseを決定する:

なら である:

の除数なら である:

が互いに素なら である:

フェルマの小定理には が素数なら であるとある:

結果は法と同じ符号を持つ:

考えられる問題  (1)

モジュール式の平方根は存在しないことがある:

おもしろい例題  (3)

指数が変化するときに,ある素数を法とする3のベキ乗のリストをプロットする:

固定の法で数のさまざまなベキの値をプロットする:

PowerModに基づいて数が彩色されたウラム(Ulam)の螺線をプロットする:

Wolfram Research (1988), PowerMod, Wolfram言語関数, https://reference.wolfram.com/language/ref/PowerMod.html.

テキスト

Wolfram Research (1988), PowerMod, Wolfram言語関数, https://reference.wolfram.com/language/ref/PowerMod.html.

CMS

Wolfram Language. 1988. "PowerMod." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/PowerMod.html.

APA

Wolfram Language. (1988). PowerMod. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/PowerMod.html

BibTeX

@misc{reference.wolfram_2024_powermod, author="Wolfram Research", title="{PowerMod}", year="1988", howpublished="\url{https://reference.wolfram.com/language/ref/PowerMod.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_powermod, organization={Wolfram Research}, title={PowerMod}, year={1988}, url={https://reference.wolfram.com/language/ref/PowerMod.html}, note=[Accessed: 22-November-2024 ]}