超链接:数学合集
这是一个很没有用的定理(没有任何实际应用价值,(´ー∀ー`)):
( p − 1 ) ! ≡ p − 1 ( m o d p ) ( p 为 质 数 ) (p-1)!\equiv p-1 (mod \ p) \ \ \ \ \ (p为质数) (p−1)!≡p−1(mod p) (p为质数)
设两个整数集合: M = [ 2 , p − 2 ] , N = [ 1 , p − 1 ] M=[2,p-2],N=[1,p-1] M=[2,p−2],N=[1,p−1]
设 a ∈ M , x ∈ N a\in M,x\in N a∈M,x∈N
我们来证明第一件事情:a*x在x变化的时候模p下互不同余,即 a ∗ x m o d p a*x \ mod\ p a∗x mod p与x一一对应(一个显然的事实—— a ∗ x m o d p ∈ N ) a*x \ mod\ p\in N) a∗x mod p∈N)
我们使用反证法:
假设存在一对 x 1 > x 2 x_1 > x_2 x1>x2,有 a ∗ x 1 ≡ a ∗ x 2 ( m o d p ) a*x_1\equiv a*x_2\ (mod\ p) a∗x1≡a∗x2 (mod p)
然后就得到了:
a ∗ ( x 1 − x 2 ) ≡ 0 ( m o d p ) a*(x_1-x_2)\equiv \ 0(mod\ p) a∗(x1−x2)≡ 0(mod p)
观察一下这个式子:你会发现a和p互质, ( x 1 − x 2 ) (x_1-x_2) (x1−x2)和p互质,So,这个式子不可能成立,So,假设不成立,得证!
如果这样的话, a ∗ x a*x a∗x可以一一表示出集合N中的每一个元素
这就说明:对于任意一个a( a ∈ M a \in M a∈M),都存在至少一个x( x ∈ N x \in N x∈N),使得 a ∗ x ≡ 1 ( m o d p ) a*x\equiv1(mod\ p) a∗x≡1(mod p)下成立
好的,我们开始证明第二件事情:上面那个结论中的x一定取不到1,p-1,a
我依然使用反证法
一个一个来:
令x=1,得到 a ≡ 1 ( m o d p ) a\equiv1(mod\ p) a≡1(mod p), a ∈ M a\in M a∈M取不到1,假设不成立;
令x=p-1,得到 ( p − 1 ) a ≡ 1 ( m o d p ) (p-1)a\equiv1(mod\ p) (p−1)a≡1(mod p)
p ∗ a − a ≡ 1 ( m o d p ) p*a-a\equiv1(mod\ p) p∗a−a≡1(mod p)
由于在模p下,So:
p − a ≡ 1 ( m o d p ) p-a\equiv1(mod\ p) p−a≡1(mod p)
a ≡ p − 1 ( m o d p ) a\equiv p-1(mod\ p) a≡p−1(mod p)
a ∈ M a\in M a∈M取不到p-1,假设不成立;
令x=a,得到 a 2 ≡ 1 ( m o d p ) a^2\equiv1(mod\ p) a2≡1(mod p)
a 2 − 1 ≡ 0 ( m o d p ) a^2-1\equiv0(mod\ p) a2−1≡0(mod p)
( a − 1 ) ∗ ( a + 1 ) ≡ 0 ( m o d p ) (a-1)*(a+1)\equiv0(mod\ p) (a−1)∗(a+1)≡0(mod p)
a ∈ M a\in M a∈M取不到1,也取不到p-1,假设不成立;
综上所述,对于任意一个a( a ∈ M a \in M a∈M),都存在一个x( x ∈ N x \in N x∈N),使得 a ∗ x ≡ 1 ( m o d p ) a*x\equiv1(mod\ p) a∗x≡1(mod p)下成立 x ≠ 1 , p − 1 , a x\neq1,p-1,a x=1,p−1,a
既然这样那么x一定属于集合M
即:对于任意一个a( a ∈ M a \in M a∈M),都存在至少一个x( x ∈ M x \in M x∈M且 x ≠ a x\neq a x=a),使得 a ∗ x ≡ 1 ( m o d p ) a*x\equiv1(mod\ p) a∗x≡1(mod p)下成立
好的,我们来证明第三件事情:上面那个结论中a和x是一一对应的关系
这个相当好证
我们还是使用反证法:
假设存在一对 a 1 > a 2 a_1 > a_2 a1>a2,有 a 1 ∗ x ≡ a 2 ∗ x ( m o d p ) a_1*x\equiv a_2*x\ (mod\ p) a1∗x≡a2∗x (mod p)
也就是 ( a 1 − a 2 ) ∗ x ≡ 0 ( m o d p ) (a_1-a_2)*x\equiv0(mod\ p) (a1−a2)∗x≡0(mod p)
因为 a 1 − a 2 a_1-a_2 a1−a2与p互质,x与p互质
So,假设不成立,得证,一个x只能对应一个a
然后继续使用反证法:
假设存在一对 x 1 > x 2 x_1> x_2 x1>x2,有 a ∗ x 1 ≡ a ∗ x 2 ( m o d p ) a*x_1\equiv a*x_2\ (mod\ p) a∗x1≡a∗x2 (mod p)
也就是 a ∗ ( x 1 − x 2 ) ≡ 0 ( m o d p ) a*(x_1-x_2)\equiv0(mod\ p) a∗(x1−x2)≡0(mod p)
因为a 与 p互质, x 1 − x 2 x_1-x_2 x1−x2与p互质
So,假设不成立,得证,一个a只能对应一个x
综上所述,a和x一一对应
即:对于任意一个a( a ∈ M a \in M a∈M),都有且仅有一个x( x ∈ M x \in M x∈M且 x ≠ a x\neq a x=a),使得 a ∗ x ≡ 1 ( m o d p ) a*x\equiv1(mod\ p) a∗x≡1(mod p)下成立
所以我们得到的是:在集合M里是一对一对的数,每一对中的两个数在模p下互为逆元( x 1 ∗ x 2 ≡ 1 ( m o d p ) x_1*x_2\equiv1(mod\ p) x1∗x2≡1(mod p),逆元??)
终于来到了最最激动人心的时刻,我们终于要开始证明最终的结论了: ( p − 1 ) ! ≡ p − 1 ( m o d p ) ( p 为 质 数 ) (p-1)!\equiv p-1 (mod \ p) \ \ \ \ \ (p为质数) (p−1)!≡p−1(mod p) (p为质数)
首先, p = 2 , p = 3 p=2,p=3 p=2,p=3的情况经过一番手算,发现满足结论
那我们就只要关心 p ≥ 5 p\geq5 p≥5的情况:
( p − 1 ) ! = 1 ∗ 2 ∗ ⋯ ∗ ( p − 1 ) (p-1)!=1*2*\dots*(p-1) (p−1)!=1∗2∗⋯∗(p−1)
( p − 1 ) ! = ( 2 ∗ 3 ∗ ⋯ ∗ ( p − 2 ) ) ∗ ( p − 1 ) (p-1)!=(2*3*\dots*(p-2))*(p-1) (p−1)!=(2∗3∗⋯∗(p−2))∗(p−1)
现在我们看第一个括号里的东西,当 p ≥ 5 p\geq5 p≥5的时候第一个括号里必定是偶数项,而且都属于M,这样一来我们把这些数搞成一对一对,使得每一对在模p下互为逆元,这样乘起来就变成1了
哦!!!!!!!!!!
第一个括号乘起来模p就是1!!!
( p − 1 ) ! ≡ p − 1 ( m o d p ) ( p 为 质 数 ) (p-1)!\equiv p-1 (mod \ p) \ \ \ \ \ (p为质数) (p−1)!≡p−1(mod p) (p为质数)得证!
OK,完事
感谢可耐滴小慕容(而又是hgoicjl讲懂了可耐滴小慕容)的讲解
参考:https://www.jianshu.com/p/ad5bb5b8fa7d
于HG机房