zoukankan      html  css  js  c++  java
  • 记:关于费马平方和定理的证明

    前言

    最近,笔者在一道 OI 题的 Hint 里看到了这样一个定理:

    费马平方和定理:一个奇素数能被表成两个平方数之和,当且仅当它是 模4余1 型素数。

    网上的几个证法看了之后写下这篇笔记。

    法一:构造

    核心:证明方程 \(4xy+z^2=p\)\(p\)模4余1型素数时,必有 \(x=y\) 的解。

    前置知识

    基数:集合的元素个数。

    对合:逆函数的函数,即满足 \(f(f(x))=x\) 的函数。

    Step1

    设集合 \(S=\left\{ (x,y,z) \vert 4xy + z^2 = p , x \in N , y \in N , z \in Z \right\}\)

    其中 \(p\) 是一固定素数。

    显然是个有限集。

    再设 \(T=\left\{ (x,y,z) \in S | z >0 \right\}\) ,容易发现此时这个集合就是方程 \(4xy + z^2 =p\) 的解集了。

    这里的 \(x\)\(y\) 事实上是处于相同地位的(函数 \(f:T \to T , (x,y,z) \to (y,x,z)\) 是对合),那我们只要证明 \(T\) 的基数是奇数就行了。

    Step2

    这时候我们开始考虑基数。

    先是 \(S\) ,构造一个函数 \(g:S \to S , (x,y,z) \to (y,x,-z)\) (跟 \(f\) 类似)。

    由于 \(z \not= 0\) ,所以 \(g\) 一定没有不动点,也就是说 \(S\) 的基数是偶数。

    同时,这个函数实现了 \(T\)\(S/T\) 之间的一一映射。

    因此 \(T\) 的基数是 \(S\) 的一半。

    Step3

    这个一半就很巧了呀。

    尝试构造一个新的集合,其基数也是 \(S\) 一半的,并构造这个集合上的函数,以此证明 \(T\) 的基数是奇数。

    这一步算得上是整个证明过程中的点睛之笔:

    发现 \(g\) 也将 \(x-y\)\(z\) 的正负性同时改变。当然 \(x-y + z\) 是一定不为 \(0\) 的,具体套入原式验证。

    \(U = \left\{ (x,y,z) \in S | (x-y) + z > 0 \right\}\) ,那么 \(g\) 也实现了 \(U\)\(S/U\) 之间的一一映射。

    所以 \(U\) 的基数也是 \(S\) 的一半,与 \(T\) 相同。

    \(U\) 上构造映射, \(h:U \to U , (x,y,z) \to (x-y+z,y,2y-z)\)

    它是合法的因为 \(4y(x-y+z) + (2y-z)^2=4xy + z^2\) ,同时这是一个对合。

    于是考虑它是否有不动点,就可以判断基数奇偶性了。

    如果有,那么 \(y=z\) ,又因为 \(4xy + z^2=p\)

    所以 \(y(4x+y)=p\) ,这就要求 \(y=z=1\)\(x=\frac{p-1}{4}\)

    这时 \(p\)模4余1型素数,\(T\) 的基数为奇数,一定有满足 \(x=y\) 的解。

  • 相关阅读:
    Python 必备神器
    python 常用库
    Sublime Text3 配置 Python2 Python3
    Python JSON
    Sublime Text3 3143 注册码
    EFCode First 导航属性
    EF Code First:实体映射,数据迁移,重构(1)
    Entity Framework 复杂类型
    EF 7 Code First
    EF Code First 导航属性 与外键
  • 原文地址:https://www.cnblogs.com/Kelvin2005/p/15574797.html
Copyright © 2011-2022 走看看