二元一次不定方程
来源:互联网 发布:java小程序实例大全 编辑:程序博客网 时间:2024/04/29 11:10
一、假设(x0,y0)为a*x + b*y = c (a,b,c,x,y为整数,a、b互质)的一组解,证明该不等式的通解为:(x0 + k*b,y0 - k*a);
证明:
1、首先将(x0 + k*b,y0 - k*a)带入原方程,使得方程成立,说明这些解为原方程的解。
2、假设除了这些解之外还存在至少一个解(x1,y1),这个点坐落在(x0+k1*b,y0-k1*a)和(x0+(k1+1)*b,y0-(k1+1)*a)之间,如下图所示:
如果(x1,y1)是这两点连成线段的的n等分点(2等分、3等分......n等分点),那么a和b具有公约数n。
如果(x1,y1)不是这两点连成线段的n等分点,那么可以还可以等间隔找出其他的解:
其中最后一个点与(x0+(k1+1)*b,y0-(k1+1)*a)的横坐标距离为(|b|%|M|),
然后又可以以(|b|%|M|)等间距找到一系列点,就像辗转相除法一样最终可以找到为b的约数的距离(可以为1),一旦找到这样的点(n1等分点)同样说明a和b具有公约数n1.与题设a,b互为质数矛盾。
二:
对于方程 a*x + b*y = 1 (a,b,x,y为整数,a、b互质)---------------------------------(1式)
设a/b = k,a%b = t;则a = b*k+t;
原方程变形为:
(b*k+t)*x + b*y = 1;
即b*(k*x+y) + t*x = 1;-----------------------------------------------------------------------(2式)
2式与1式为同样的问题,只是参数有a,b变成了b,t(参数减小了,相当于问题规模缩小了),因此可以设计一个递归的方法解这个方程。
/*
* test.cpp*
* Created on: 2013-8-28
* Author: zhijian
*/
#include <stdio.h>
int gcd(int a,int b){
return a?gcd(b%a,a):b;
}
int extends_gcd(int a,int b,int &x,int &y){
if(b==0){
x = 1;
y = 0;//这里可以为任意整数值
return a;
}
int tempx;
int result = extends_gcd(b,a%b,tempx,y);
x = y;
y = tempx - a/b*x;
return result;
}
void F(int a,int b,int c){
int x0,y0;
int gc = gcd(a,b);
a /= gc;
b /= gc;
c /= gc;
extends_gcd(a,b,x0,y0);
printf("%d*x+%d*y=%d的通解为:(%d+k*%d,%d-k*%d)\n",a,b,c,x0*c,b,y0*c,a);
}
int main(){
F(111,-321,75);
return 0;
}
- 二元一次不定方程
- 二元一次不定方程
- 二元一次不定方程的解法
- codevs4290 二元一次不定方程~(三星)
- 扩展欧几里德解二元一次不定方程
- 如何求解二元一次不定方程的整数解
- hdu2669 扩展欧几里德 二元一次解不定方程
- poj1061 青蛙的约会 解二元一次不定方程
- HDU 1576 扩展欧几里德算法求二元一次不定方程
- poj 2115 C Looooops(解二元一次不定方程)
- 二元不定方程
- poj 1061 青蛙的约会 二元一次不定方程 http://poj.org/problem?id=1061
- poj 1061 青蛙的约会 拓展欧几里德 解二元一次不定方程
- n元一次不定方程
- vb实现二元一次复数方程求解
- n元一次不定方程 模板
- HDU 2669 扩展欧几里德求二元不定方程,超水..
- 扩展gcd求解二元不定方程及其证明
- UVa11732strcmp() Anyone?
- 24. 不要害怕搞砸什么
- Go语言知识积累——特点简介与windows开发环境搭建
- Apple开发者帐号到期,用Xcode自动连接更新证书失败的原因
- 不开辟用于交换数据的临时空间,如何完成字符串的逆序
- 二元一次不定方程
- Dictionary 用法
- log4j 2 配置
- 一个PHP程序员应该掌握的10项技能
- POJ 1068 Parencodings (字符串处理)
- pat_1041
- 文档/视图结构中的各个部分是如何联系到一起的
- 接发球 抢攻
- java内存回收----引用