费马小定理

最近在上计算机安全学选修课.. 读老师博客..现在当是写阅读笔记吧.

这里贴出老师的简书
建议先看看链接先..毕竟我这些东西只是搞笑一下的..

遵循一下这个原则…

  • 观察
  • 找规律
  • 求证

首先是一段python代码,其实下面的才能直接copy后直接跑(我没学过)

# n是某个正整数
n = 11;
for i in range(1, n): # i循环从1到n-1
for j in range(1, n): # j循环从1到n-1
print ((i * j) % n),# 输出 (i*j) mod n
print("\n")

发现打印的结果每一行都是 [1, n-1]的排列, 但是当n == 某个合数时规律消失

却也并非完全消失, 与n互素的行规律仍在, 后话

知道其实i, j是[1, n-1]的循环,打印的就是(ij) mod n
根据老师文章所提示,依式子以及结果,得到2条式子
i
1 mod n, i2 mod n, …, i(n-1) mod n [1]
1, 2, 3, 4, …, n-1 [2]
式子[1]与式子[2]中元素各自连乘,得另外两个相等的式子
i^(n-1) (n-1)! mod n [3]
(n-1)! mod n [4]
关键在于知道[3] == [4]后, [6]式如何得来, 即
i^(n-1)
(n-1)! ≡ (n-1)! mod n [5]
推导出
i^(n-1) ≡ 1 mod n [6]

首先给出一个定义
设m是大于1的正整数,a、b是整数,如果(a-b)|m,则称a与b关于模m同余,记作a≡b(mod m),读作a与b对模m同余

我们可以把上面的两个式子简化成
a c ≡ b c mod m [7],
现在证明, 当 c 与 m互素时, 上式可以化简成
a ≡ b mod m

∵ a * c ≡ b * c mod m
∴ m | (a * c - b * c)
∴ m | (a - b) * c ∵ m 与 c 互素
∴ m | (a - b) // 整除的性质
∴ a ≡ b mod m

上面的证明并不严谨..只是一个思路..(有问题的话恳请指正)

说了这么多..谁和你说 c 和 m 互素了?? 回到[6]式
就是问 (n-1)! 为什么和 n是互素的?
首先我们知道发现规律的n,都是素数(比如代码用的11),..而一个素数与 [1, n-1]的整数都是互素的
就是说
∀i ∈ [1, n-1], 都满足 i ≡ 1 mod n
那么根据同余关系的性质
同余式相乘 若a≡b (mod m),c≡d(mod m),则ac≡bd (mod m)
可以推得,所有的这些与n互素的元素之积, 亦即(n-1)! ≡ 1 mod n成立

根据[5][6],我们能总结出,对于素数n,取任意大于1小于n-1的整数(此条件并不必要,为什么?),我们有,i^(n-1) ≡ 1 mod n
但是依据上面的证明,显然但凡c和m互素,皆可得到式6。

上述亦即费马小定理
假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)

读 CSI讲义 费马小定理的更多相关文章

  1. BZOJ 3240([Noi2013]矩阵游戏-费马小定理【矩阵推论】-%*s-快速读入)

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec   Memory Limit: 256 MB Submit: 123   Solved: 73 [ Submit][ St ...

  2. 数学【p2613】 【模板】有理数取余(费马小定理)

    题目描述 给出一个有理数 c=a/b ,求 c mod 19260817的值. 说明 对于所有数据, 0≤a,b≤10^10001 分析: 一看题 这么短 哇简单!况且19260817还是个素数!(美 ...

  3. hdu 4704 Sum (整数和分解+快速幂+费马小定理降幂)

    题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                  ...

  4. nyoj1000_快速幂_费马小定理

    又见斐波那契数列 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 斐波那契数列大家应该很熟悉了吧.下面给大家引入一种新的斐波那契数列:M斐波那契数列. M斐波那契数列 ...

  5. poj 3734 Blocks 快速幂+费马小定理+组合数学

    题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...

  6. 数论初步(费马小定理) - Happy 2004

    Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2 ...

  7. 【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理

    Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...

  8. 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum

    Sum Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的 ...

  9. HDU 5667 Sequence 矩阵快速幂+费马小定理

    题目不难懂.式子是一个递推式,并且不难发现f[n]都是a的整数次幂.(f[1]=a0;f[2]=ab;f[3]=ab*f[2]c*f[1]...) 我们先只看指数部分,设h[n]. 则 h[1]=0; ...

随机推荐

  1. 迁移SharePoint搜索服务至新的服务器

    转自:http://blog.fpweb.net/move-sharepoint-2013-search-components-to-new-server/#.V_w4JZH_6uh In this ...

  2. java 基础 --- servlet

    问题 : servlet 这个类是有什么作用 概述 servlet 是个接口,这个接口的作用是规范了接收请求的处理类.而最终的实现交给了 servlet 容器去实现. servlet 接口 接口方法如 ...

  3. 关系型数据库之MySQL基础总结_part1

    一:数据库的操作语言的种类 MySQL 是我们最常使用的关系型数据库,对于MySQL的操作的语言种类又可以分为:DDL,DML,DCL,DQL DDL:是数据库的定义语言:主要对于数据库信息的一些定义 ...

  4. spring 事务管理机制

    1. spring 事务管理抽象 spring 的事务策略机制的核心就是 org.springframework.transaction.PlatformTransactionManager 接口. ...

  5. 系统每隔一段时间自动pull代码

    #!/bin/bash while true;do dd=$( date -u ) echo $dd,"start pull wmsinventoryapiwms6.2" cd / ...

  6. 谈缓存和Redis

    自从上次分享<Redis到底该如何利用?>已经有1年多了,这1年经历了不少.从码了我们网站的第一行开始到现在,我们的缓存模块也不断在升级,这之中确实略有心得,最近也有朋友探讨缓存,觉得可以 ...

  7. 已注册成Portal联合服务器的Server,如何修改机器名?

    1.产品版本 ArcGIS for Server 10.2.2 2.修改说明 本环境中,Portal for ArcGIS和ArcGIS for Server两个产品安装在同一台机器上.安装前已将完全 ...

  8. Python power spectral 功率谱

    You can also use scipy.signal.welch to estimate the power spectral density using Welch’s method. Her ...

  9. MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档)

    原文:http://download.csdn.net/download/jobfind/9559162 MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档).rar

  10. Android实时获得经纬度,发送给c++服务端

    Android 客户端: package com.example.admin.gpsget; import android.Manifest; import android.content.Conte ...