数论:不定方程的引入

研究的对象:不定方程

文章目录

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

不定方程引入:

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

形如 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/7089.shtml

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

相关文章

什么是X电容和Y电容?

先补充个知识&#xff1a; 一、什么是差模信号和共模信号 差模信号&#xff1a;大小相等&#xff0c;方向相反的交流信号&#xff1b;双端输入时&#xff0c;两个信号的相位相差180度 共模信号&#xff1a;大小相等。方向相同。双端输入时&#xff0c;两个信号相同。 二、安规…

Redis探索之旅(基础)

目录 今日良言&#xff1a;满怀憧憬&#xff0c;阔步向前 一、基础命令 1.1 通用命令 1.2 五大基本类型的命令 1.2.1 String 1.2.2 Hash 1.2.3 List 1.2.4 Set 1.2.5 Zset 二、过期策略以及单线程模型 2.1 过期策略 2.2 单线程模型 2.3 Redis 效率为什么这么高 三…

cmake进阶:文件操作

一. 简介 前面几篇文章学习了 cmake的文件操作&#xff0c;写文件&#xff0c;读文件。文章如下&#xff1a; cmake进阶&#xff1a;文件操作之写文件-CSDN博客 cmake进阶&#xff1a;文件操作之读文件-CSDN博客 本文继续学习文件操作。主要学习 文件重命名&#xff0c;删…

python爬虫(一)之 抓取极氪网站汽车文章

极氪汽车文章爬虫 闲来没事&#xff0c;将极氪网站的汽车文章吃干抹尽&#xff0c;全部抓取到本地&#xff0c;还是有点小小的难度。不能抓取太快&#xff0c;太快容易被封禁IP&#xff0c;不过就算被封了问题也不大&#xff0c;大不了重启路由器&#xff0c;然后你的IP里面又…

文件夹加密软件哪个好?文件夹加密软件排行榜

许多人给小编说&#xff0c;我们公司想实现文件私自发出呈乱码状态&#xff0c;这说明公司逐渐认识到文件加密的重要性。 目前&#xff0c;加密软件已经广泛应用于企业办公、商业贸易、个人应用等多个领域&#xff0c;成为保护数据安全和隐私的重要手段。 为了保护企业机密&am…

OpenNJet评测,探寻云原生之美

在信息时代的大海上&#xff0c;云原生应用引擎如一艘航行于波涛之间的帆船&#xff0c;承载着创新的梦想和数字化的未来。本文将带领您登上这艘船&#xff0c;聚焦其中之一的OpenNJet&#xff0c;一同探寻其中的奥秘和精妙&#xff0c;领略其独特之美。 OpenNJet 内容浅析 O…

一个月速刷leetcodeHOT100 day 01

两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 //哈希表做法 function twoSum(nums, target) { let obj new Map(); for (let i 0; i < nums.length; i…

智慧工地)智慧工地标准化方案(107页)

2.2 设计思路 对于某某智慧工地管理系统的建设&#xff0c;绝不是对各个子系统进行简单堆砌&#xff0c;而是在满足各子系统功能的基础上&#xff0c;寻求内部各子系统之间、与外部其它智能化系统之间的完美结合。系统主要依托于智慧工地管理平台&#xff0c;来实现对众多子系统…

OpenNJet应用引擎——云原生时代的Web服务新选择

文章目录 OpenNJet应用引擎——云原生时代的Web服务新选择引言&#xff1a;数字化转型的推动力&#xff1a;OpenNJet应用引擎为什么选择OpenNJet&#xff1f; OpenNJet的核心优势1. 云原生功能增强2. 安全加固3. 代码重构与性能优化4. 动态加载机制5. 多样化的产品形态6. 易于集…

Python测试框架Pytest的参数化详解

上篇博文介绍过&#xff0c;Pytest是目前比较成熟功能齐全的测试框架&#xff0c;使用率肯定也不断攀升。 在实际工作中&#xff0c;许多测试用例都是类似的重复&#xff0c;一个个写最后代码会显得很冗余。这里&#xff0c;我们来了解一下pytest.mark.parametrize装饰器&…

后端接口返回二进制数据流,前端如何将其转换成对应的excel、csv和json文件格式并下载

本文主要是介绍在工作中遇到的后端接口返回一个二进制数据流&#xff0c;前端在界面上创建下载按钮并下载成对应格式的文件导出。 downloadData({start: startTime,end: endTime,exportType: 0, // 0-excel, 1-csv, 2-json }).then((res) > {download(res, startTime, endTi…

uniapp this 作用域保持的方法

在 UniApp&#xff08;或任何基于 Vue.js 的框架&#xff09;中&#xff0c;this 关键字通常用于引用当前 Vue 实例的上下文。然而&#xff0c;当你在回调函数、定时器、Promise、异步函数等中使用 this 时&#xff0c;你可能会发现 this 的值不再指向你期望的 Vue 实例&#x…

毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》

前言 《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》&#xff0c;这是我在本科阶段的毕业设计&#xff0c;通过引入 Prometheus 和 ELK 架构实现企业对指标与日志的全方位监控。并且基于云原生&#xff0c;使用容器化持续集成部署的开发方式&#xff0c;通过 Sprin…

通信系列:通信中如何度量消息中所包含的信息量?如何评估通信系统的性能?

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、通信中如何度量消息…

小吉/希亦/鲸立内衣洗衣机怎么样?深度测评谁更好用!

内衣洗衣机是近几年新兴的家电产品&#xff0c;以清洁效果好、除菌能力强&#xff0c;被很多人种草入手了&#xff01;但网上有不少人虽感兴趣&#xff0c;但不清楚如何选。担心买到质量差&#xff0c;清洗不干净的产品。作为一名家电测评博主&#xff0c;我今天特意围绕被问最…

神奇的Vue3 - 组件探索

神奇的Vue3 第一章 神奇的Vue3—基础篇 第二章 神奇的Vue3—Pinia 文章目录 神奇的Vue3了解组件一、注册组件1. 全局注册​2. 局部注册3. 组件命名 二、属性详解1. Props&#xff08;1&#xff09;基础使用方法&#xff08;2&#xff09;数据流向&#xff1a;单项绑定原则&…

Java学习之线程

线程&#xff1a; 1. 单线程与多线程的运行 public class DemoThread {public static void main(String[] args) {/*TODO 构建多线程模式方式1: 自定义类继承 Tread类并重写其run方法在run方法中定义当前线程需要完成的任务逻辑*//*TODO 多线程的调用1.构建对象,并直接使用其…

5-在Linux上部署各类软件

1. MySQL 数据库安装部署 1.1 MySQL 5.7 版本在 CentOS 系统安装 注意&#xff1a;安装操作需要 root 权限 MySQL 的安装我们可以通过前面学习的 yum 命令进行。 1.1.1 安装 配置 yum 仓库 # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 安装Mysql…

GraphGPT——图结构数据的新语言模型

在人工智能的浪潮中&#xff0c;图神经网络&#xff08;GNNs&#xff09;已经成为理解和分析图结构数据的强大工具。然而&#xff0c;GNNs在面对未标记数据时&#xff0c;其泛化能力往往受限。为了突破这一局限&#xff0c;研究者们提出了GraphGPT&#xff0c;这是一种为大语言…

重学java 29.经典接口

光阴似箭&#xff0c;我好像跟不上 —— 24.5.6 一、java.lang.Comparable 我们知道基本数据类型的数据(除boolean类型外)需要比较大小的话&#xff0c;直接使用比较运算符即可&#xff0c;但是引用数据类型是不能直接使用比较运算符来比较大小的。那么&#xff0c;如何解决这个…