MATLAB ヘルプ センター
このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
べき剰余
c = powermod(a,b,m)
c = powermod(a,b,m) はべき剰余 ab mod m を返します。入力 a,b は整数でなければならず、m は非負の整数でなければなりません。詳細については、べき剰余を参照してください。
a
b
m
a,b
例
すべて折りたたむ
powermod を使用して、べき剰余 ab mod m を計算します。関数 powermod は、指数 ab を計算しないので効率的です。
powermod
c = powermod(3,5,7)
c = 5
フェルマーの小定理は、p が素数で a が p によって割り切れない場合、a(p–1) mod p は 1 であるというものです。
p = 5、a = 3 の場合にフェルマーの小定理をテストします。予想どおり、powermod は 1 を返します。
p = 5
a = 3
1
p = 5; a = 3; c = powermod(a,p-1,p)
c = 1
p より小さい a のすべての値に対して同じケースをテストします。関数 powermod は要素ごとに 1 のベクトルを返すように働きます。
p = 5; a = 1:p-1; c = powermod(a,p-1,p)
c = 1 1 1 1
フェルマーの小定理は、p が素数で a が p によって割り切れない場合、a(p–1) mod p は 1 であるというものです。逆に、a(p–1) mod p が 1 で a が p で割り切れない場合、p は必ずしも素数であるとは限りません (p は疑素数である可能性があります)。
2 を底とするフェルマーの小定理を使用して、300 から 400 までの数の素数性をテストします。
2
300
400
p = 300:400; remainder = powermod(2,p-1,p); primesFermat = p(remainder == 1)
primesFermat = 307 311 313 317 331 337 341 347 349 353... 359 367 373 379 383 389 397
結果を isprime と比較してフェルマーの擬素数を求めます。341 はフェルマーの擬素数です。
isprime
341
primeNumbers = p(isprime(p)); setdiff(primesFermat,primeNumbers)
ans = 341
基数。数値、ベクトル、行列、配列、あるいはシンボリック数または配列で指定されます。a は整数でなければなりません。
指数またはべき乗。数値、ベクトル、行列、配列、あるいはシンボリック数または配列で指定されます。b は整数でなければなりません。
除数。数値、ベクトル、行列、配列、あるいはシンボリック数または配列として指定します。m は非負の整数でなければなりません。
正の指数 b について、べき剰余 c は次のように定義されます。
c = ab mod m.
負の指数 b については、定義は m を法とする乗法に関する a の逆元 d を求めることによって拡張できます。つまり、次のようになります。
c = d ‒b mod m.
ここで、d は次の関係を満たします。
ad mod m = 1.
R2018a で導入
mod | nextprime | nthprime | prevprime
mod
nextprime
nthprime
prevprime
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ