WOLFRAM

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を法としてを計算する:

Out[1]=1

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

Out[1]=1

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

Out[1]=1

スコープ  (7)標準的な使用例のスコープの概要

数値評価  (4)

整数を使って計算する:

Out[1]=1
Out[1]=1

有理指数:

Out[6]=6

ガウス整数:

Out[1]=1

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

Out[1]=1

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

Out[1]=1

TraditionalFormによる表示:

記号演算  (3)

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

Out[1]=1

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

Out[1]=1

PowerModを総和で使う:

Out[1]=1

アプリケーション  (6)この関数で解くことのできる問題の例

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

9のPrimitiveRootを求める:

Out[1]=1

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

Out[2]=2

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

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

Out[2]=2

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

Out[3]=3

整数論  (4)

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

Out[2]=2

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

Out[3]=3

秘密鍵:

Out[4]=4

公開鍵:

Out[5]=5

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

Out[6]=6

それを解読する:

Out[7]=7

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

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

Out[2]=2

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

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

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

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

Out[6]=6
Out[7]=7

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

Out[8]=8

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

Out[1]=1

法と基底を選ぶ:

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

Out[3]=3

特性と関係  (8)この関数の特性および他の関数との関係

PowerModは周期関数である:

Out[2]=2

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

Out[1]=1

ModularInverseを決定する:

Out[1]=1

なら である:

Out[1]=1
Out[2]=2
Out[3]=3

の除数なら である:

Out[1]=1

が互いに素なら である:

Out[1]=1

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

Out[1]=1

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

Out[1]=1
Out[2]=2

考えられる問題  (1)よく起る問題と予期しない動作

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

Out[1]=1

おもしろい例題  (3)驚くような使用例や興味深い使用例

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

Out[1]=1

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

Out[1]=1

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

Out[1]=1
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.

テキスト

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.

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

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

BibTeX

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

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

BibLaTeX

@online{reference.wolfram_2025_powermod, organization={Wolfram Research}, title={PowerMod}, year={1988}, url={https://reference.wolfram.com/language/ref/PowerMod.html}, note=[Accessed: 04-April-2025 ]}

@online{reference.wolfram_2025_powermod, organization={Wolfram Research}, title={PowerMod}, year={1988}, url={https://reference.wolfram.com/language/ref/PowerMod.html}, note=[Accessed: 04-April-2025 ]}