• 费马小定理


    费马小定理:

    \[a^{p-1}\equiv 1\pmod{p},p\in prime \]

    先看一些同余的基本性质,\(a\)\(b\)除以\(c\)的余数相同,我们记为:

    \[a\ \equiv b\pmod{m} \]

    \(\\\)

    1. $\ $ 如果\(a\ \equiv b\pmod{m}\)并且\(x\ \equiv y\pmod{m}\),那么有\(a+x \equiv b + y\pmod {m}\)
      \(\\\)
    2. $\ $ 如果\(a\ \equiv b\pmod{m}\)并且\(x\ \equiv y\pmod{m}\),那么有\(ax \equiv by \pmod{m}\)
      \(\\\)
    3. $\ $ 如果\(ac \equiv bc\pmod{m}\)并且\(\gcd(m, c)=1\),那么有\(a \equiv b\pmod{m}\)
      \(\\\)
      关于3,我们可以得到\(ac - mq = bc - mp\),移项得\(c(a-b)=m(q-p)\),因为\(m\)\(c\)互质,所以\(m | (a-b)\),所以\(a\equiv b\pmod{m}\)
      \(\\\)
      在编译器中,两个异号的数取余之后的结果取决于分子的符号。负数%负数,编译器会将分母的负数自动转换为正整数,然后再将分子负数的负号提取出来,将两个正整数取余,最后的结果加上负号就好了。负数%正数,编译器先将分子负数的负号提取出来,将两个正整数取余,最后结果加上负号即可。正数%负数,编译器自动将分母负数转换为正整数,然后两个正整数取余得到就是最终结果。
      \(\\\)
      完全剩余系:
      在模n的剩余类中各取一个元素,则这n个数就构成了模n的一个完全剩余系。如最小非负数为代表,则得完全剩余系\(\{0,1,2,...,n-1\}\)
      \(\\\)
      看一个完全剩余系的性质:
      \(a_1,a_2,...,a_n\)\(\pmod{p}\)的一个完全剩余系且\(\gcd(p, b)=1\),则\(ba_1,ba_2,...,ba_n\)也为\(\pmod{p}\)的一个完全剩余系。
      \(\\\)
      证明一下,我一开始以为会有\(a_1\equiv ba_1\pmod{p}\),这样一一对应的相等关系,后来发现并不是这样,我们假设\(ba_i\equiv ba_j\pmod{p}\),则由上述性质3就有\(a_i\equiv a_j\pmod{p}\),产生矛盾,所以必有\(ba_i\not\equiv ba_j\pmod{p}\),所以\(ba_1,ba_2,...,ba_n\)仍为\(\pmod{p}\)的一个完全剩余系。
      \(\\\)
      下面证明一下费马小定理:
      我们构造一个素数\(p\)的完全剩余系:\(P=\{0,1,2,...,p-1\}\)
      由完全剩余系的性质得\(A=\{0,a,2a,...,(p-1)a\}\)
      因为\(A\)\(P\)都为\(\pmod{p}\)的完全剩余系,所以,\(1\times 2 \times 3\times...\times (p-1)\equiv a\times 2a \times 3a \times...\times (p-1)a\pmod{p}\),即为\((p-1)!\equiv (p-1)!a^{p-1}\pmod{p}\),又\(\gcd((p-1)!,p)=1\),所以得\(a^{p-1}\equiv 1\pmod{p}\)
      \(\\\)
      浅举以下它的应用:
      \(\\\)
      \(2^{100}\)除以\(13\)的余数:

    \[2^{100} \\ \equiv 2^{(12\times 8)+4}\pmod{13} \\ \equiv 1^8 \times 2^4 \pmod{13} \\ \equiv 16\pmod{13} \\ \equiv 3\pmod{13} \]

  • 相关阅读:
    跟我一起学extjs5(02--建立project项目)
    SVN经常使用操作
    CWnd::Attach()具体解释
    51nod1160 压缩算法的矩阵——一道有趣的题
    Java实现 LeetCode 594 最长和谐子序列(滑动窗口)
    Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
    Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
    Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)
    Java实现 LeetCode 593 有效的正方形(判断正方形)
    Java实现 LeetCode 593 有效的正方形(判断正方形)
  • 原文地址:https://www.cnblogs.com/Miraclys/p/16704355.html
Copyright © 2020-2023  润新知