See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
フェルマーの小定理 - Wikipedia

フェルマーの小定理

出典: フリー百科事典『ウィキペディア(Wikipedia)』

数論において、フェルマーの小定理素数の性質についての定理であり、実用としてもRSA暗号に応用されている定理である。

目次

[編集] 概要

p を素数とし、ap の倍数でない整数ap互いに素)とするときに、

a^{p-1} \equiv 1 \pmod{p}

すなわち ap - 1 乗したものを p で割ったあまりは 1 になるというもの。有名なフェルマーの最終定理と区別するためにあえて「小」定理と称されている。

この定理はピエール・ド・フェルマーの名を冠するが、フェルマーの他の予想と同じく、フェルマー自身によって証明が与えられていたことが確認されているわけではない。この定理に対する証明はゴットフリート・ライプニッツによって初めて与えられた。

[編集] 証明

二項式の累乗を展開する公式から、数学的帰納法を用いて証明する方法が簡便である。ここでは、

a^{p} \equiv a \pmod{p}

つまり ap 乗したものを p で割ったあまりは ap で割ったあまりに等しいという形の命題として証明する。

  1. (m + 1)p という式を展開することを考える。これは公式により、
    mp + pC1mp-1 + pC2mp-2 + … + pCp-1m + 1
    となる。
  2. ここで両端の項以外はすべての項に pCk が因数として含まれている。これは、p が素数であれば k が 1 以上 p 未満である限り必ず p で割り切れる。なぜなら pCk = p!/(p-k)!k! であり、p が素数であるなら分子には p が含まれているものの分母に p やその倍数は含まれないからである。
  3. すると、両端の項以外は p で割り切れる。(m + 1)pp で割ったあまりは、残る mp + 1 を p で割ったあまりと等しいことになる。
  4. ここで、m = 1 とする。2p = (1 + 1)pp で割ったあまりは 1p + 1 = 2 ということになり、命題は a = 2 の場合に正しいことが証明された。
  5. a に関する帰納法で示すために、a = k で命題が成立していると仮定する。ステップ3により、(k + 1)pp で割ったあまりは、kp + 1 を p で割ったあまりに等しい。さらにこれは、帰納法の仮定により、k + 1 を p で割ったあまりに等しい。したがって命題は a = k + 1 でも成立する。数学的帰納法によって 2 以上のすべての a について命題は成立することになる。
  6. a = 0, 1 の場合は命題の成立することが自明。

(証明終わり)

[編集] オイラーの定理

後になってレオンハルト・オイラーはこの定理を拡張し、an互いに素な整数とするときに、

a^{\varphi(n)} \equiv 1 \pmod{n}

が成り立つことを示した。ここで、\varphi(n)n 未満の n に素な自然数の個数を表し、オイラー関数 と呼ばれる。

n が素数のときに限れば、\varphi(n)=n-1 であるからこれはフェルマーの小定理に一致する。

[編集] フェルマーテスト

フェルマーテストは、 フェルマーの小定理の対偶を用いて確率的素数判定を行うアルゴリズムである。

フェルマーの小定理の対偶をとると、これは次のように、自然数 n合成数であるための十分条件を与える。

対偶
n と互いに素な 整数 a
a^{n-1} \ \not\equiv\ 1 \pmod{n}
を満たせば、このとき n は合成数である。

この十分条件を用いて、次のように自然数 n の素数判定を行う。

  1. パラメータとして、2 以上 n 未満の自然数 a を1つ定める。
  2. an が互いに素でなければ「n は合成数」と出力して終了。
  3. a^{n-1} \ \not\equiv\ 1 \pmod{n} ならば「n は合成数」と出力して終了する。
    そうでないとき「n は確率的素数」と出力して終了する。

フェルマーテストが「合成数」と出力したとき、上のフェルマーの小定理の対偶によって n は実際に合成数である。しかし、上の対偶は十分条件を与えるのみで必要条件を与えるものではないので、「確率的素数」と出力された場合でも n は実際に素数であるとは限らない。素数ではないにもかかわらず「確率的素数」と判定されてしまう自然数は擬素数と呼ばれる。

疑わしければ、「確率的素数」と出力された場合にはまた異なる a を用いて再びテストを行う。十分な回数だけ a を取り替えて繰り返せば、フェルマーテストが「確率的素数」と判定した数は実際に素数である可能性が高い。

しかし、カーマイケル数または絶対擬素数と呼ばれる "反例" もある。カーマイケル数は、合成数であるにも関わらずいかなる a を用いても「確率的素数」と判定されてしまう( a がカーマイケル数の素因数であるときのみ合成数と判定される)。従って、フェルマーテストは完全な素数判定法ではない。10000 以下のカーマイケル数は 561, 1105, 1729, 2465, 2821, 6601, 8911 である。カーマイケル数は無限個存在することが知られている。

フェルマーテストを改善するアルゴリズムとしては、ラビン-ミラー素数判定法AKS素数判定法がある。

[編集] 一般化

フェルマーの小定理・オイラーの定理は一般の有限群の定理に拡張できる。G位数 m の有限群とすると、G の任意の元 g に対して gm は単位元に一致する。オイラーの定理は G が乗法群 (Z/nZ)× のときの場合であり、フェルマーの小定理はさらに n が素数の場合である。

[編集] 参考文献

[編集] 外部リンク


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -