数论:不定方程的引入

研究的对象:不定方程

文章目录

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

不定方程引入:

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

形如 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.mfbz.cn/a/600196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows系统和unbtun系统连接usb 3.0海康可见MVS和红外艾睿相机

一.海康可见USB3.0工业面阵相机 海康usb相机需要去海康官网上下载对应系统的MVS客户端及SDK开发包 海康机器人-机器视觉-下载中心 选择Windows系统和unbtun&#xff08;我是linux aarch64,所以选择了对应压缩包解压&#xff09; Windows系统 1.双击安装包进入安装界面&…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Date/Time Edit的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Spin Box的使用及说明 文章编号&#xff1…

【牛客】[HNOI2003]激光炸弹

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 二维前缀和板题。 注意从&#xff08;1,1&#xff09;开始存即可&#xff0c;所以每次输入x,y之后&#xff0c;要x,y。 因为m的范围最大为…

nginx--FastCGI

CGI 概念 nginx通过与第三方基于协议实现&#xff0c;即通过某种特定协议将客户端请求转发给第三方服务处理&#xff0c;第三方服务器会新建新的进程处理用户的请求&#xff0c;处理完成后返回数据给Nginx并回收进程(下次处理有需要新建)&#xff0c;最后nginx在返回给客户端…

5.7 线程

进程&#xff1a;解耦稳定&#xff0c;内容之间是不相关的&#xff0c;通信不便利&#xff0c;理论上进程的软硬件的切换时间以及创建开销非常大。--------》资源共享线程实现 线程的问题&#xff1a;本质就是不解耦&#xff0c;一个出问题别的就很有可能出问题&#xff0c;同…

【YoloDeployCsharp】基于.NET Framework的YOLO深度学习模型部署测试平台

YoloDeployCsharp|基于.NET Framework的YOLO深度学习模型部署测试平台 1. 项目介绍2. 支持模型3. 时间测试4. 总结 1. 项目介绍 基于.NET Framework 4.8 开发的深度学习模型部署测试平台&#xff0c;提供了YOLO框架的主流系列模型&#xff0c;包括YOLOv8~v9&#xff0c;以及其系…

python实现的信号合成分析系统(DSP)

python实现的信号合成分析系统(DSP) 流程 1、在QT界面上设置好信号频率,采样频率,采样点数 2、使用np构建sin函数 3、使用matplotlib画出 4、分别分析合成信号的FFT频域信息1、效果图 2、示例代码 def btn_com_clicked(self):# 信号合成分析Fs = self.com_fs_edit_value #…

HarmonyOS开发案例:【电子相册】

介绍 如何实现一个简单的电子相册应用的开发&#xff0c;主要功能包括&#xff1a; 实现首页顶部的轮播效果。 实现页面跳转时共享元素的转场动画效果。 实现通过手势控制图片的放大、缩小、左右滑动查看细节等效果。 相关概念 [Swiper]&#xff1a;滑块视图容器&#x…

cmake install命令无法覆盖同名文件

文章目录 1. 问题记录2. 原因排查3. 解决方案 1. 问题记录 我有两个同名文件test.txt&#xff0c;它们内容不同&#xff0c;但时间戳相同&#xff08;文件属性中的修改时间相同&#xff09; 我希望在cmake中利用install命令&#xff0c;将${PATH_SRC}/test.txt替换${PATH_DES…

Elasticsearch:使用 MongoDB connector 同步数据到 Elasticsearch

MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。Elasticsearch 是一个高效强…

[CISCN2019 华北赛区 Day1 Web2]ikun

看到提示说一定要找到lv6 这要写脚本来爆破了&#xff0c;用bp是爆破不出来的 发现LV等级都是有参数挂着的 写个脚本看一下 import requests for i in range(1,1000):payload"http://node4.anna.nssctf.cn:28150/shop?page%d"%(i)resrequests.get(payload)if "…

【PCIE】基于PCIE4C的数据传输(四)——使用MSIX中断

基于PCIE4C的数据传输&#xff08;三&#xff09;——遗留中断与MSI中断 一文介绍了遗留中断与MSI中断两种中断方式的代码实现&#xff0c;本文继续基于Xilinx UltrascaleHBM VCU128开发板与linux&#xff08;RHEL8.9&#xff09;&#xff0c;介绍MSIX中断方式的代码实现。本文…

矩阵的压缩存储介绍

引入 概述 特殊矩阵的压缩 对称矩阵 三角矩阵 对角矩阵 稀疏矩阵 三元组存储 十字链表法 示例

java:递归实现的案例

//求第20个月兔子的对数 //每个月兔子对数&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8 public class Test {//求第20个月兔子的对数//每个月兔子对数&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8pu…

《Python编程从入门到实践》day21

# 昨日知识点回顾 设置背景颜色 在屏幕中央绘制飞船 # 今日知识点学习 12.5 重构&#xff1a;方法_check_events()和_update_screen() 12.5.1 方法_check_events() import sys import pygame from Settings import Settings from Ship import Shipclass AlienInvasion:"…

[Maven]IDEA报错-xxx is referencing itself

在IDEA中&#xff0c;执行 mvn clean时报错xxx is referencing itself。 解决方案&#xff1a;https://stackoverflow.com/questions/64246267/maven-error-using-intellij-is-referencing-itself 具体做法&#xff1a;采用上图第二条&#xff0c;将父模块pom文件中的对子模块…

练习题(2024/5/7)

1验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 …

JSP企业快信系统的设计与实现参考论文(论文 + 源码)

【免费】JSP企业快信系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89277688 JSP企业快信系统的设计与实现 摘 要 计算机网络的出现到现在已经经历了翻天覆地的重大改变。因特网也从最早的供科学家交流心得的简单的文本浏览器发展成为了商务和信息的中心…

深入理解Java虚拟机(JVM)

引言&#xff1a; Java虚拟机&#xff08;JVM&#xff09;是Java平台的核心组件&#xff0c;它负责将Java字节码转换成平台特定的机器指令&#xff0c;并在相应的硬件和操作系统上执行。JVM的引入使得Java语言具有“一次编写&#xff0c;到处运行”的跨平台特性。本文将深入探…

【练习2】

1.汽水瓶 ps:注意涉及多个输入&#xff0c;我就说怎么老不对&#xff0c;无语~ #include <cmath> #include <iostream> using namespace std;int main() {int n;int num,flag,kp,temp;while (cin>>n) {flag1;num0;temp0;kpn;while (flag1) {if(kp<2){if(…
最新文章