重学数论1:不定方程的引入

研究的对象:不定方程

文章目录

    • 研究的对象:不定方程
        • 不定方程引入:
        • 裴蜀定理证明:
          • 欧几里得算法证明:
          • 充分性证明:
          • 必要性证明:
        • 战术总结:

不定方程引入:

不定方程,又称丢番图方程,定义为:未知数为整数,系数也为整数的多项式等式。

形如 a 1 x 1 b 1 + a 2 x 2 b 2 + . . . + a n x n b n = c a_1x_1^{b_1} + a_2x_2^{b_2}+...+a_nx_n^{b_n} =c a1x1b1+a2x2b2+...+anxnbn=c

如果我们能找到一组整数解: x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,我们就说这个方程有解。

但是我们并不研究不定方程的一般式,而是研究其特殊的形式,即一次不定方程:

a 1 x 1 + a 2 x 2 + . . . + a n x n = c a_1x_1 + a_2x_2+...+a_nx_n =c a1x1+a2x2+...+anxn=c

这个一次不定方程有解的充要条件是:

g c d ( a 1 , a 2 , . . , a m ) ∣ c gcd(a_1,a_2,..,a_m)|c gcd(a1,a2,..,am)c (即c为这n个数的倍数的时候,该一次不定方程有解)

这个推论是由二元一次不定方程有解的情况归纳而来:

即:
对于二元一次不定方程: a x + b y = c ax+by=c ax+by=c

此方程有解的充要条件是 : g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c

这个结论是裴蜀定理的证明:下面将引出裴蜀定理。

裴蜀定理与不定方程的解有什么关系??

裴蜀定理给出:

对于任何整数 a , b , m a,b,m abm,关于未知数 x , y x,y x,y 的一元二次不定方程 a x + b y = m ax+by = m ax+by=m

此方程有解的充要条件 g c d ( a , b ) ∣ m gcd(a,b)|m gcd(a,b)m,由于只给了一个不定方程,所以整数解有无穷多个,每一组(x,y)都被称为裴蜀数


裴蜀定理证明:

由于是任意整数 a , b a,b a,b

所以我们先考虑0的情况:

1、当 a = 0 a = 0 a=0

该不定方程为: b y = m by = m by=m , 此方程有整数解,当且仅当 b ∣ m b\:|\:m bm​ 。

可以写成 g c d ( 0 , b ) ∣ m gcd(0,b)|m gcd(0,b)m

写到这里突然有个想法, g c d ( 0 , b ) gcd(0,b) gcd(0,b)​ 这样的写法是合法的吗?

公约数的定义:如果有一个数 d d d, 对于 a 1 , a 2 , a 3 , . . . , a n a_1,a_2,a_3,...,a_n a1,a2,a3,...,an,都有 d ∣ a i , i ∈ [ 1 , n ] d|a_i,i\in[1,n] dai,i[1,n]

这样的数就被称为这些数的公约数。

a 1 , a 2 , a 3 , . . . , a n a_1,a_2,a_3,...,a_n a1,a2,a3,...,an的所有公约数放入集合 D D D中, D = { d ; d ∣ ( a 1 , a 2 , a 3 , . . . a n ) } D=\lbrace d;d|(a_1,a_2,a_3,...a_n)\rbrace D={d;d(a1,a2,a3,...an)}

最大公约数gcd的定义是: d m a x ∈ D d_{max}\in D dmaxD,使得 ∀ d ∣ d m a x \forall d|d_{max} ddmax,其中 d m a x d_{max} dmax被称为 g c d gcd gcd

0 0 0能被任意非 0 0 0数整除, b b b最大只能被 b b b整除。

当只要求 2 2 2个整数的最大公约数的时候,有一方为 0 0 0,那么它们的最大公因数就是另一个非零数本身。


都讲到这里了,顺便在写一下欧几里得算法的证明:

欧几里得算法证明:

考虑 g c d ( a , b ) = g c d ( b , a m o d b ) gcd(a,b) = gcd(b,a\:mod\:b) gcd(a,b)=gcd(b,amodb) 的证明:(面向结果证明)

任意一个整数可以写成带余除法(因为要用到 a m o d b a\:mod\:b amodb 的形式,所以将 a a a写成关于 b b b的带余除法: a = k b + c a = kb+c a=kb+c , c = a m o d b c = a \:mod \:b c=amodb 并约定 ( b ≠ 0 ) (b\neq0) (b=0)

d d d a , b a,b a,b的最大公约数。

有: d ∣ a , d ∣ b d|a ,\: d|b da,db。​

两边同时除以d: a d = k b d + c d \frac{a}{d} = k\frac{b}{d}+\frac{c}{d} da=kdb+dc

由于 a d , b d \frac{a}{d},\frac{b}{d} da,db都是整数,所以 c d \frac{c}{d} dc也是一个整数。

这说明 d ∣ c d|c dc , 这说明 d d d ( a , b , c ) (a,b,c) (a,b,c)​的最大公约数。

所以得到了最终的转移式子: g c d ( a , b ) = g c d ( b , c ) gcd(a,b) = gcd(b,c) gcd(a,b)=gcd(b,c)

这个证明过程告诉我们,不要忽视整数这个性质


2、当 b = 0 b = 0 b=0 的时候,这与 a = 0 a = 0 a=0 的计算过程等价,结论也等价,所以不过多赘述。

3、下面讨论 a ≠ 0 , b ≠ 0 a\neq0,b\neq0 a=0,b=0 的情况:

再次重申我们要证明的是什么?(有时候写着写着忘记要干嘛了)

证明: a x + b y = c ax + by = c ax+by=c 有整数解 ( x , y ) ⇔ g c d ( a , b ) ∣ c (x,y)\Leftrightarrow gcd(a,b)|c (x,y)gcd(a,b)c


充分性证明:

证明充分性,即证明: a x + b y = c ⇒ g c d ( a , b ) ∣ c ax+by=c \Rightarrow gcd(a,b)|c ax+by=cgcd(a,b)c

假设 a x + b y = c ax+by=c ax+by=c有解。

A = { a x + b y ; ( x , y ) ∈ Z 2 } A = \lbrace ax+by ; (x,y)\in \Z^2 \rbrace A={ax+by;(x,y)Z2}​ ​

不妨设 c 0 c_0 c0 A A A的最小正整数元素: a x 0 + b y 0 = c ax_0+by_0=c ax0+by0=c,其中 c c c表示A的任意一个正整数元素: a x + b y = c ax+by=c ax+by=c

c c c c 0 c_0 c0的带余除法: c = q c 0 + r c = qc_0 + r c=qc0+r 0 ≤ r < c 0 0 \leq r< c_0 0r<c0

代入原式: a x + b y = q ( a x 0 + b y 0 ) + r ax+by = q(ax_0+by_0) + r ax+by=q(ax0+by0)+r

r = a ( x − q x 0 ) + b ( y − q y 0 ) r = a(x-qx_0) + b(y - qy_0) r=a(xqx0)+b(yqy0) ,显然满足 r ∈ A r\in A rA

∵ \because 0 ≤ r < c 0 0\leq r< c_0 0r<c0 ,而 c 0 c_0 c0 A A A中的最小正元素。

∴ \therefore r r r 不是正元素, 即 r = 0 r=0 r=0,所以 c c c c 0 c_0 c0的带余除法为: c = q c 0 c=qc_0 c=qc0

也就是说 A A A中任意一个正元素 c c c,都存在 c 0 ∣ c c_0|c c0c

∵ a x + b y = c , ∀ c ∈ A , c 0 ∣ c \because ax+by=c , \forall c\in A ,c_0|c ax+by=ccA,c0c

∴ \therefore , c 0 ∣ a x c_0 |ax c0ax , c 0 ∣ b y c_0|by c0by

∵ x , y ∈ Z \because x,y\in\Z x,yZ

∴ c 0 ∣ a , c 0 ∣ b \therefore c_0|a,c_0|b c0a,c0b c c c a , b a,b a,b​​的公约数。

这是一个关键的进展!

接下来,我们只要证明 g c d ( a , b ) = c 0 gcd(a,b)=c_0 gcd(a,b)=c0

就能得到: g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c

d d d a , b a,b a,b的任意正公约数, a = k d , b = l d a=kd,b=ld a=kd,b=ld​。

a x + b y = k d x + l d y = ( k x + l y ) d = c 0 ax + by = kdx+ldy=(kx+ly)d=c_0 ax+by=kdx+ldy=(kx+ly)d=c0

∴ d ∣ c 0 \therefore d|c_0 dc0

∴ g c d ( a , b ) = c 0 \therefore gcd(a,b)=c_0 gcd(a,b)=c0

∴ ∀ a , b , c ∈ Z , a x + b y = c \therefore \forall a,b,c\in \Z , \:ax+by=c a,b,cZ,ax+by=c 有解 ⇒ g c d ( a , b ) ∣ c \Rightarrow gcd(a,b)|c gcd(a,b)c

充分性证毕

必要性证明:

证明当 g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c的时候, a x + b y = c ax+by=c ax+by=c 有解:

这个问题等价于证明:当 g c d ( a , b ) = c 0 gcd(a,b)=c_0 gcd(a,b)=c0时, a x + b y = c 0 ax+by=c_0 ax+by=c0有解:

d = g c d ( a , b ) d = gcd(a,b) d=gcd(a,b)

等式两边同时除以 d d d,等式就被转换为: a ′ x + b ′ y = 1 a'x+b'y=1 ax+by=1 其中 g c d ( a ′ , b ′ ) = 1 gcd(a',b')=1 gcd(a,b)=1

问题就转化为证明这个等式成立: a ′ x + b ′ y = 1 a'x+b'y=1 ax+by=1

这个求解的过程可以由欧几里得算法顺带求出。

a ′ = a , b ′ = b a'=a,b'=b a=a,b=b

模拟求 g c d ( a , b ) gcd(a,b) gcd(a,b)的过程:

a = k 1 b + r 1 a = k_1b+r_1 a=k1b+r1

⇒ a = b , b = r 1 \Rightarrow a=b,b=r_1 a=b,b=r1

b = k 2 r 1 + r 2 b=k_2r_1+r_2 b=k2r1+r2

r 1 = k 3 r 2 + r 3 r_1=k_3r_2+r_3 r1=k3r2+r3

. . . ... ...

r n − 1 = k n + 1 r n + r n + 1 . . . ( 3 ) r_{n-1}=k_{n+1}r_{n}+r_{n+1}...(3) rn1=kn+1rn+rn+1...(3)

r n = k n + 2 r n + 1 + r n + 2 . . . . ( 2 ) r_n=k_{n+2}r_{n+1}+r_{n+2}....(2) rn=kn+2rn+1+rn+2....(2)

r n + 1 = k n + 3 r n + 2 . . . ( 1 ) r_{n+1}=k_{n+3}r_{n+2}...(1) rn+1=kn+3rn+2...(1)​​

g c d = r n + 2 gcd = r_{n+2} gcd=rn+2

欧几里得算法在 r = 0 r=0 r=0​的时候停止,并返回 b b b,也就是 ( 1 ) (1) (1)式子

所以,可以得到 r n + 2 = 1 r_{n+2}=1 rn+2=1

r n = k n + 2 r n + 1 + 1... ( 2 ) r_{n}=k_{n+2}r_{n+1}+1...(2) rn=kn+2rn+1+1...(2)

联立 ( 2 ) , ( 3 ) (2),(3) (2),(3)消去 r n + 1 r_{n+1} rn+1

{ k n + 2 r n + 1 = 1 − r n k n + 2 r n + 1 = k n + 2 r n − 1 − k n + 1 k n + 2 r n \begin{cases} k_{n+2}r_{n+1}=1-r_n\\ k_{n+2}r_{n+1}=k_{n+2}r_{n-1}-k_{n+1}k_{n+2}r_n \end{cases} {kn+2rn+1=1rnkn+2rn+1=kn+2rn1kn+1kn+2rn

得:

( k n + 2 k n + 1 − 1 ) r n + 1 = k n + 2 r n − 1 . . . ( 1 ′ ) (k_{n+2}k_{n+1}-1)r_n+1=k_{n+2}r_{n-1}...(1') (kn+2kn+11)rn+1=kn+2rn1...(1)

联立 ( 1 ′ ) , ( 3 ) (1'),(3) (1),(3)消去 r n r_n rn

{ r n − 2 = k n r n − 1 + r n ( k n + 2 k n + 1 − 1 ) r n + 1 = k n + 2 r n − 1 \begin{cases} r_{n-2} = k_{n}r_{n-1}+r_n\\ (k_{n+2}k_{n+1}-1)r_n+1=k_{n+2}r_{n-1} \end{cases} {rn2=knrn1+rn(kn+2kn+11)rn+1=kn+2rn1
得:
( k n + 2 k n + 1 − 1 ) r n − 2 + 1 = ( k n + 2 k n + 1 k n − k n + k n + 2 ) r n − 1 . . . ( 2 ′ ) (k_{n+2}k_{n+1}-1)r_{n-2}+1=(k_{n+2}k_{n+1}k_{n}-k_n+k_{n+2})r_{n-1}...(2')\\ (kn+2kn+11)rn2+1=(kn+2kn+1knkn+kn+2)rn1...(2)
我们观察式子的结构不难发现:

这个式子只包含 r i , r i − 1 r_i,r_{i-1} ri,ri1这两个已知量,以及常数1,以及 r i , r i − 1 r_i,r_{i-1} ri,ri1前面的系数。

所以,我们可以通过不断的消去 r i r_i ri,使得最终的式子只包含 ( a , b , k ) (a,b,k) (a,b,k)

最终的形式一定可以化简: a x + b y = 1 ax+by=1 ax+by=1。​

必要性证毕。

战术总结:

本节内容的主要内容如下:

1、不定方程的简单介绍。

2、裴蜀定理介绍。

3、裴蜀定理的证明:

  • 先证明充分性:

    • 假定 a x + b y = c ax+by=c ax+by=c有解,证出 ∀ c ∈ A , c 0 ∣ c \forall c\in A,c_0|c cA,c0c,进而得出 c 0 ∣ a , c 0 ∣ b c_0|a,c_0|b c0a,c0b,即 c 0 c_0 c0 a , b a,b a,b的公约数
    • 接着证明 a , b a,b a,b的任意约数 d d d,都有 d ∣ c 0 d|c_0 dc0,得出 c 0 c_0 c0 a , b a,b a,b的最大公约数。
    • 此时证出:若 a x + b y = c 0 ax+by=c_0 ax+by=c0有解,则 c 0 = g c d ( a , b ) c_0=gcd(a,b) c0=gcd(a,b)
    • 在等式两边乘以任意整数可得:若 a x + b y = c ax+by=c ax+by=c有解,则 g c d ( a , b ) ∣ c gcd(a,b)|c gcd(a,b)c
  • 再证明必要性:

    • 即证明当 c 0 = g c d ( a , b ) c_0=gcd(a,b) c0=gcd(a,b)的时候,是否 a x + b y = c 0 ax+by=c_0 ax+by=c0成立
    • 两边除以 c 0 c_0 c0,问题便转为证明:当 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1 时, a ′ x + b ′ y = 1 a'x+b'y=1 ax+by=1成立。
    • 这个等式由欧几里得算法可以得出是有解的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「 网络安全常用术语解读 」SBOM主流格式SPDX详解

SPDX&#xff08;System Package Data Exchange&#xff09;格式是一种用于描述软件组件&#xff08;如源代码&#xff09;的规范&#xff0c;它提供了一种标准化的方法来描述软件组件的元数据&#xff0c;包括其许可证、依赖项和其他属性。SPDX最初由Linux基金会于2010年发起&…

复旦微JFM7VX690计算后IO接口模块,用于雷达信号处理、数据处理等需要高速密集计算的应用场景

计算后IO接口模块 1 介绍 1.1 产品概述 计算后IO接口模块主要由复旦微JFM7VX690型FPGA、国产以太网收发器YT8521、国产BMC芯片GD32F450、国产CPLD芯片EF2L45BG256B、国产内存颗粒等主要芯片组成&#xff0c;采用标准6U VPX尺寸设计。 本计算后IO接口模块主要用于雷达信号处…

Java面试八股之Java中数组有没有length()方法?String呢?为什么?

Java中数组有没有length()方法&#xff1f;String呢&#xff1f;为什么&#xff1f; 数组&#xff1a; 数组没有名为length()的方法&#xff0c;但有一个属性叫做length。可以通过数组名直接访问这个属性来获取数组的长度&#xff08;即元素个数&#xff09;。这是一个整数值&…

《Redis使用手册之有序集合》

《Redis使用手册之有序集合》 目录 **《Redis使用手册之有序集合》****ZADD&#xff1a;添加或更新成员****ZREM&#xff1a;移除指定的成员****ZSCORE&#xff1a;获取成员的分值****ZINCRBY&#xff1a;对成员的分值执行自增或自减操作****ZCARD&#xff1a;获取有序集合的大…

【redis】Redis数据类型(三)List类型

目录 List类型介绍特点 List数据结构附&#xff1a;3.2以前的版本(介绍一下压缩列表和双向链表)压缩列表ZipList双向链表LinkedList 常用命令lpush示例 lpushx示例 rpush示例 rpushx示例 LPOP示例 RPOP示例 BLPOP非阻塞行为阻塞行为相同的 key 被多个客户端同时阻塞在 MULTI/EX…

[笔试强训day06]

文章目录 NC10 大数乘法NC1 大数加法NC40 链表相加(二) NC10 大数乘法 NC10 大数乘法 #include <string> #include <vector> class Solution {public:string solve(string s, string t) {int m s.size(), n t.size();reverse(s.begin(), s.end());reverse(t.beg…

Matlab图像处理——基于BP神经网络的车牌标识识别系统

1. 数据集介绍 中国交通标志数据集&#xff1a; https://nlpr.ia.ac.cn/pal/trafficdata/detection.html 该数据集包含58类交通标志。 2. 数据处理 按照文件标签&#xff0c;将数据集划分了58类&#xff0c;如下&#xff1a; 对应的类别信息记录如下&#xff1a; 限速5km/…

2024 一带一路暨金砖国家技能发展与技术创新大赛【企业信息系统安全赛项】选拔赛样题

2024 一带一路暨金砖国家技能发展与技术创新大赛--企业信息系统安全赛项任务书 第一阶段&#xff1a; CTF 夺旗任务一 WEBCMS任务二 杂项 MISC任务三 Linux 应急响应分析任务四 Baby_PWN任务五 流量溯源 第二阶段&#xff1a; 企业网络安全配置与渗透需要2023环境私信博主&…

element-plus中使用el-switch时,用‘0,1’或者0,1来代替true,false绑定

介绍 switch 开关默认用 true, false来绑定的&#xff0c;但是在实际的项目中&#xff0c;有时候根据后端的接口返回&#xff0c;也可能会用字符串0 和 1 &#xff0c;或者数字 0,1来代替; 具体实现如下 详情&#xff1a; 主要实现方式是通过使用el-switch组件里的 active-val…

企业计算机服务器中了rmallox勒索病毒怎么处理,rmallox勒索病毒处理建议

在网络技术不断发展的时代&#xff0c;网络在企业中的应用广泛&#xff0c;可以为企业带来更多的便利&#xff0c;大大提升了企业的生产效率&#xff0c;但网络作为虚拟世界&#xff0c;在为企业提供便利的同时&#xff0c;也为企业数据安全带来严重威胁。近期&#xff0c;云天…

mysql 删除数据,导致存在表空间碎片的解决方法

mysql删除数据&#xff0c;导致存在表空间碎片的解决方法 1.分区表2. 使用OPTIMIZE TABLE3. 定期重建表4. 监控和维护5. 考虑其他存储引擎或数据库系统&#xff1a;6. 调整删除策略&#xff1a; 删除大量数据&#xff0c;尤其是频繁发生的删除操作&#xff0c;确实可能导致表空…

ffmpeg命令行工具安装

1. root用户安装 #!/bin/bash sudo yum install epel-release -y#由于CentOS没有官方FFmpeg rpm软件包。但是&#xff0c;我们可以使用第三方YUM源&#xff08;Nux Dextop&#xff09;完成此工作。--外网 sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro…

【YOLO改进】换遍IoU损失函数之EIoU Loss(基于MMYOLO)

EIoU损失函数 设计原理 一、IoU的局限性 IoU&#xff08;Intersection over Union&#xff09;是一种常用于评估目标检测模型性能的指标&#xff0c;特别是在计算预测边界框与真实边界框之间的重叠程度时。然而&#xff0c;IoU存在一些局限性&#xff0c;尤其是当两个边界框…

[python趣味实战]----基于python代码实现浪漫爱心 დ

正文 01-效果演示 下图是代码运行之后的爱心显示结果&#xff1a; 下面的视频该爱心是动态效果&#xff0c;较为简洁&#xff0c;如果需要使用&#xff0c;可以进行完善&#xff0c;这里只是一个趣味实战&#xff0c;下面将对代码实现进行非常详细地描述&#xff1a; 浪漫爱心…

Java数据结构-模拟实现ArrayList

MyArrayList顺序结构&#xff1a; 接口和MyArrayList重写接口 接口 接口中的方法是很多类通用的&#xff0c;所以可以写到接口中 public interface IList {public void add(int data) ;// 在 pos 位置新增元素public void add(int pos, int data);// 判定是否包含某个元素p…

踏上R语言之旅:解锁数据世界的神秘密码(三)

多元相关与回归分析及R使用 文章目录 多元相关与回归分析及R使用一.变量间的关系分析1.两变量线性相关系数的计算2.相关系数的假设检验 二.一元线性回归分析的R计算三、回归系数的假设检验总结 一.变量间的关系分析 变量间的关系及分析方法如下&#xff1a; 1.两变量线性相关…

LeetCode 727. 菱形

输入一个奇数 n n n&#xff0c;输出一个由 * 构成的 n n n阶实心菱形。 输入格式 一个奇数 n n n。 输出格式 输出一个由 * 构成的 n n n阶实心菱形。 具体格式参照输出样例。 数据范围 1 ≤ n ≤ 99 1≤n≤99 1≤n≤99 输入样例&#xff1a; 5输出样例&#xff1a; *…

JAVA的多态

在Java中&#xff0c;多态&#xff08;Polymorphism&#xff09;是面向对象编程的三大特性之一&#xff0c;它允许一个引用变量在运行时引用不同类的对象&#xff0c;并根据实际对象的类型来执行对应的方法。多态的存在增加了代码的灵活性和可扩展性。 多态的实现通常依赖于以下…

一文掌握python上下文管理器(with语句)

目录 一、上下文管理协议 二、with 语句 三、自定义上下文管理器 四、生成器上下文管理器 五、几个常用例子 1、自动关闭网络连接 2、临时更改目录 3、数据库事务管理 4、计时器上下文管理器 5、日志记录上下文管理器 6、资源锁定上下文管理器 7、临时修改环境变量…

windows远程访问树莓派ubuntu22.04 桌面 - NoMachine

通过nomachine 实现 windows 安装 nomachine 下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/10rGBREs-AnwRz7D7QbLQ1A?pwd8651 提取码&#xff1a;8651 安装&#xff1a;下一步 下一步 使用&#xff1a; 下一步 下一步 ubuntu 安装 nomachine服务 下载&#…