威尔逊定理

前言

一个抽象的事情,我在证欧拉定理的时候,偶然发现了一个式子:

\[(p-1)!\bmod p=p-1 \]

非常的偶然,实际上是证明欧拉定理的时候有一步搞错了,然后不得不想如何把 \((p-1)!\bmod p\) 消去,然后就很意外的发现了这个式子。

当时我不知道他到底是不是成立的,我试了好几个数都是满足的,于是我认为他是成立的,但是显然,我不会证。

于是我去找班里数奥的同学,让他帮我证一下,他说好像从哪儿看过……

于是果然这个式子早就是有人发现且证明过的,就是 威尔逊定理


威尔逊定理

\(p\) 是素数,则 \((p-1)!\equiv-1\pmod p\)

  • 简单证明

    \(p\) 是素数,取集合 \(A=\{1,2,3,…,p-1\}\)

    \(A\) 构成模 \(p\) 乘法的简化剩余系,同时也是其完全剩余系除去 \(0\) 这个元素。

    那么,存在任意 \(i\in A\) ,存在 \(j\in A\) ,使得 \((ij)\equiv1\pmod p\)

    那么 \(A\) 中的元素是否恰好两两配对呢?不一定,需要考虑这种情况: \(i^2\equiv1\pmod p\)

    解得: \(i\equiv1\pmod p\)\(i\equiv p-1\pmod p\)

    其余两两配对,所以满足:

    \((p-1)!\bmod p\equiv 1\times (p-1)\equiv-1\pmod p\)


  • 详细解剖证明过程

    根据数奥同学的学案,先导入另一个例题:

    \(p\geq 5\) 是素数,\(a\in \{2,3,…,p-2\}\) ,则在数列 \({a,2a,3a,…,(p-1)a,pa}\) 中有且只有一个数 \(b\) ,满足 \(b\equiv1\pmod p\) ,此外,如 \(b=ka\) ,则 \(k\neq a\)\(k\in \{2,3,…,p-2\}\)

    那么这个东西怎么证,又和威尔逊定理又什么关系呢?


    • 证明:
    1. 存在性

      \(p\) 为素数,\(a\in \{2,3,…,p-2\}\)

      \(\gcd(a,p)=1\)

      \(\{a,2a,…,pa\}\)\(\bmod p\) 的完全剩余系

      ∴ 必定存在 \(k\) ,使得 \(ka\equiv1\pmod p\) ,即 \(b=ak\)


    2. \(k\neq a\)

      假设 \(k=a\) ,则 \(a^2\equiv 1\pmod p\)

      \(p|a^2-1\)\(p|(a+1)(a-1)\)

      \(p|(a+1)\)\(p|(a-1)\)

      \(a\in\{2,3,…,p-2\}\)

      \(a-1\in\{1,2,…,p-1\}\)

      \(\gcd(a-1,p)=1\)

      而 ∴ \(p|(a+1)\)\(p|(a-1)\)\(\gcd(a-1,p)=1\) 矛盾

      从而通过反证法,证得 \(k\neq a\)


    3. \(k\neq 1\)

      假设 \(k=1\) ,则 \(a\equiv 1\pmod p\) ,与 \(a\in\{2,3,…,p-2\}\) 矛盾

      从而证得 \(k\neq 1\)


    4. \(k\neq p-1\)

      与上面类似的

      假设 \(k=p-1\) ,则 \((p-1)a\equiv 1\pmod p\)

      \(a\equiv -1\pmod p\) ,即 \(a\bmod p=p-1\)

      \(a\in\{2,3,…,p-2\}\) 矛盾

      从而证得 \(k\neq p-1\)


    5. 唯一性

      \(ak\equiv ak'\pmod p\)

      \(\gcd(a,p)=1\)

      \(k\equiv k'\pmod p\)

      \(k=k'\)

      \(k\) 唯一


    现在把我们上面证明出来的式子带入我们的简单证明过程中

    存在任意 \(i\in A\) ,存在 \(j\in A\) ,使得 \((ij)\equiv1\pmod p\)

    可以用存在性唯一行证明。

    那么 \(A\) 中的元素是否恰好两两配对呢?不一定,需要考虑这种情况: \(i^2\equiv1\pmod p\) 。解得: \(i\equiv1\pmod p\)\(i\equiv p-1\pmod p\) 。其余两两配对

    可以用 \(k\neq 1\)\(k\neq p-1\) 证明。

    从而,我们证明了威尔逊定理。

    证毕。


扩展

前言:此部分纯凭个人想象(当然式子是正确的),并非扩展威尔逊定理,若想了解更多真正的扩展,请见 \(oi-wiki\)

大前提:\(p\) 为素数

  • 威尔逊定理:\((p-1)!\bmod p=p-1\)

  • \((p-2)!\bmod p=1\)

    显然的,同时除以 \(p-1\)


  • \((p-3)!\bmod p=\dfrac{p-1}{2}\)

    此式子需满足前提 \(p\)\(>2\) 的素数

    • 证明:

      \((p-2)!\equiv(p-2)\times (p-3)!\bmod p\pmod p\)

      \(\{1!\bmod p,2!\bmod p\,…,(p-1)!\bmod p\}\) 中,满足其值 \(\geq 1\)\(\leq p-1\)

      不妨设 \((p-3)!\bmod p=p-b\) ,其中 \(1\leq b\leq p-1\)\(b\) 为整数

      原式就变成了 \((p-2)(p-b)\bmod p\)

      将括号拆开,得 \((p^2-(2+b)p+2b)\bmod p\) ,得到一个多项式

      其中,每一项中只要是带 \(p\) 的,\(\bmod p\) 后一定是 \(0\) ,所以原式 \(=2b\bmod p\)

      \(2b\equiv 1\pmod p\) ,从而得 \(2b=kp+1\) ,其中 \(k\) 为非负整数

      同时 \(1\leq b\leq p-1\) ,所以 \(2\leq 2b\leq 2p-2\) ,从而得到 \(k\) 只能等于 \(1\)

      所以 \(2b=p+1\)\(b=\dfrac{p+1}{2}\)

      所以 \((p-3)!\bmod p=(p-b)=\dfrac{p-1}{2}\)


  • \((p-a)(p-b)\equiv ab\pmod p\)

    在推上一个式子中可以发现,证明过程去上一个证明中刨。

    \(\text{C}_{n}^{m}=\text{C}_{n}^{n-m}\) 是类似的。


  • 在计算 \(n!\bmod p\) 时,如果 \(n>p\) ,因为通常情况下,在题目中,常常要把 \(n!\)\(p\) 的倍数去掉,首先 \(p\) 显然是素数。

    那么 \(n!\bmod p=((p-1)!^{\lfloor\dfrac{n}{p}\rfloor}\bmod p\times(n\bmod p)!\bmod p)\bmod p\)

    \(a=\lfloor\dfrac{n}{p}\rfloor\) ,其中 \((p-1)^a\bmod p\) 的值可以简化

    已知 \(p-1\equiv -1\pmod p\) ,那么 \((p-1)^a\equiv (-1)^a\pmod p\)

    那么 \(n!\bmod p=((p+(-1)^{\lfloor\dfrac{n}{p}\rfloor})\bmod p\times (n\bmod p)!\bmod p)\bmod p\)

    其中 \((p+(-1)^{\lfloor\dfrac{n}{p}\rfloor})\bmod p\) 加上一个 \(p\) 不会改变 \(\bmod p\) 的值,同时防止出现负数的情况。

    这样,当 \(n>p\) 时,\(n!\bmod p\) 的复杂度就可以压死到 \(O(p-1)\) 以内。


posted @ 2024-01-18 21:40  卡布叻_周深  阅读(29)  评论(3编辑  收藏  举报