【蓝桥杯】简单数论4——丢番图方程
创始人
2024-05-26 14:12:40
0

1、二元线性丢番图方程

方程ax +by = c被称为二元线性丢番图方程,其中a、b、c是已知整数,x、y是变量,问是否有整数解
ax + by= c实际上是二维x-y平面上的一条直线,这条直线上如果有整数坐标点,方程就有解,如果没有整数坐标点,就无解。

 如果存在一个解,就有无穷多个解。

1.1有解的判断条件和通解的形式

定理:设a,b是整数gcd(a, b)=d。如果d不能整除c,那么方程ax + by=c没有整数解,如果d能整除c,那么存在无穷多个整数解。

解释:令a=da',b= db';有ax+by = d(a' x +b'y)=c;如果x、y、a'、b'都是整数,那么c必须是d =gcd(a, b)的倍数,才有整数解

如果(x_0,y_0)是方程的一个特解,所有的解(通解)可的形式x=x_0 +(b/d)n,y= y_0 - (a/d)n,其中n是任意整数。

 

说明: x值按b/d递增,y值按- a/d递增。设(x_0,y_0)是一个格点(格点是指x、y坐标均为整数的点),移动到直线上另一个点(x_0+\Delta x,y_0+\Delta y),有a\Delta x+b\Delta y=0。△x和Ay必须是整数,(x_0+\Delta x,y_0+\Delta y)才是另一个格点。  

\Delta x最小是多少?因为a/d与b/d互素,只有\Delta x = b/d,\Delta y =- a/d时,\Delta x\Delta y才是整数,并满足a\Delta x +b\Delta y = 0。 

定理概况为: ax + by= c有解的充分必要条件d = gcd(a, b)能整除c

例:
(1)方程18x + 3y = 7没有整数解,因为gcd(18,3) = 3,3不能整除7;

(2)方程25x + 15y = 70存在无穷个解,因为gcd(25,15)= 5且5整除70,一个特解是x_0=4,y_0 = -2,通解是x=4 + 3n,y = -2- 5n

1.2例题一:线段上的格点数量

【题目描述】在二维平面上,给定两个格点p_1=(x_1,y_1)p_2=(x_2,y_2),问线段p_1p_2上除了p_1,p_2外还有几个格点?设x_1< x_2

【思路】
首先利用p_1,p_2把线段表示为方程ax + by = c的形式,它肯定有整数解。
然后在线段范围内,根据x的通解的表达式x = x_0+ (b/d)n,当x_1<x<x_2时,求出n的取值情况有多少个,这就是线段内的格点数量。

计算步骤:

(1)、用p_1(x_1,y_1)p_2(x_2,y_2)表示线段,线段表示为:

(y_2-y_1)x + (x_1-x_2)y = y_2x_1-y_1x_2

(2)、对照ax + by = c,得:
a = y_2-y_1, b = x1_-x_2,c = y_2x_1-y_1x_2

d = gcd(a,b) = gcd(\left | y_2-y_1 \right |,\left |x1-x2 \right |)

(3)、对照通解公式x = x_0+ (b/d)nn,令特解是x,代入限制条件x_1<x<x_2,有:
x_1< x+((x_1-x_2)/d)n < x2

当-d < n< 0时满足上面的表达式,此时n有d-1种取值,即线段内有d-1个格点。

2、方程的特解与扩展欧几里得算法

求解方程ax + by = c的关键是找到一个特解
根据定理的描述,解和求GCD有关;
求特解用到了欧几里得求GCD的思路,称为扩展欧几里得算法

2.1扩展欧几里得算法

方程ax + by = gcd(a, b),根据定理,它有整数解
定理:设a, b是整数且gcd(a, b)=d。如果d不能整除c,那么方程ax + by=c没有整数解,如果d能整除c,那么存在无穷多个整数解。
扩展欧几里得算法求一个特解(x_0,y_0)的代码:

def exgcd(a,b):if b == 0:return 1, 0x,y = exgcd(b,a % b)return y, x - a // b * y    # 返回特解xo,yo
a,b = map (int,input ().split())#   试试6x+15y=3
x,y = exgcd (a,b)#计算得到特解
print(x, y)

2.2扩展欧几里得算法与方程ax+by=c的特解

用扩展欧几里得算法得到ax +by =ged(a,b)的一个特解后,再利用它求方程ax +by= c的一个特解。步骤如下:
(1)判断方程ax +by = c是否有整数解,即gcd(a,b)能整除c。记d= gcd(a,b)。
(2)用扩展欧几里得算法求ax + by = d的一个特解x_0,y_0
(3)在ax_0 + by_0= d两边同时乘以c/d,得: ax_0c/d + by_0c/d=c(目的是构造c,这样和ax + by= d就能消掉c)

(4)对照ax +by =c,得到它的一个解(x_0',y_0')是:x_0'= x_0c/d,y_0'= y_0c/d

(5)方程ax + by = c的通解x=x_0'+ (b/d)n,y =y_0' - (a/d)n

 

相关内容

热门资讯

安卓子系统windows11,... 你知道吗?最近科技圈可是炸开了锅,因为安卓子系统在Windows 11上的兼容性成了大家热议的话题。...
电脑里怎么下载安卓系统,电脑端... 你有没有想过,你的电脑里也能装上安卓系统呢?没错,就是那个让你手机不离手的安卓!今天,就让我来带你一...
索尼相机魔改安卓系统,魔改系统... 你知道吗?最近在摄影圈里掀起了一股热潮,那就是索尼相机魔改安卓系统。这可不是一般的改装,而是让这些专...
安卓系统哪家的最流畅,安卓系统... 你有没有想过,为什么你的手机有时候像蜗牛一样慢吞吞的,而别人的手机却能像风一样快?这背后,其实就是安...
安卓最新系统4.42,深度解析... 你有没有发现,你的安卓手机最近是不是有点儿不一样了?没错,就是那个一直在默默更新的安卓最新系统4.4...
android和安卓什么系统最... 你有没有想过,你的安卓手机到底是用的是什么系统呢?是不是有时候觉得手机卡顿,运行缓慢,其实跟这个系统...
平板装安卓xp系统好,探索复古... 你有没有想过,把安卓系统装到平板上,再配上XP系统,这会是怎样一番景象呢?想象一边享受着安卓的便捷,...
投影仪装安卓系统,开启智能投影... 你有没有想过,家里的老式投影仪也能焕发第二春呢?没错,就是那个曾经陪你熬夜看电影的“老伙计”,现在它...
安卓系统无线车载carplay... 你有没有想过,开车的时候也能享受到苹果设备的便利呢?没错,就是那个让你在日常生活中离不开的iOS系统...
谷歌安卓8系统包,系统包解析与... 你有没有发现,手机更新换代的速度简直就像坐上了火箭呢?这不,最近谷歌又发布了安卓8系统包,听说这个新...
微软平板下软件安卓系统,开启全... 你有没有想过,在微软平板上也能畅享安卓系统的乐趣呢?没错,这就是今天我要跟你分享的神奇故事。想象你手...
coloros是基于安卓系统吗... 你有没有想过,手机里的那个色彩斑斓的界面,背后其实有着一个有趣的故事呢?没错,我要说的就是Color...
安卓神盾系统应用市场,一站式智... 你有没有发现,手机里的安卓神盾系统应用市场最近可是火得一塌糊涂啊!这不,我就来给你好好扒一扒,看看这...
黑莓平板安卓系统升级,解锁无限... 亲爱的读者们,你是否还记得那个曾经风靡一时的黑莓手机?那个标志性的全键盘,那个独特的黑莓体验,如今它...
安卓文件系统采用华为,探索高效... 你知道吗?最近安卓系统在文件管理上可是有了大动作呢!华为这个科技巨头,竟然悄悄地给安卓文件系统来了个...
深度系统能用安卓app,探索智... 你知道吗?现在科技的发展真是让人惊叹不已!今天,我要给你揭秘一个超级酷炫的话题——深度系统能用安卓a...
安卓系统的分区类型,深度解析存... 你有没有发现,你的安卓手机里藏着不少秘密?没错,就是那些神秘的分区类型。今天,就让我带你一探究竟,揭...
安卓系统铠无法兑换,揭秘无法兑... 最近是不是有很多小伙伴在玩安卓系统的游戏,突然发现了一个让人头疼的问题——铠无法兑换!别急,今天就来...
汽车安卓系统崩溃怎么刷,一键刷... 亲爱的车主朋友们,你是否曾遇到过汽车安卓系统崩溃的尴尬时刻?手机系统崩溃还能重启,但汽车系统崩溃了,...
miui系统可以刷安卓p系统吗... 亲爱的手机控们,你是否对MIUI系统情有独钟,同时又对安卓P系统的新鲜功能垂涎欲滴?今天,就让我带你...