| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 880 人关注过本帖
标题:AC水题,,,,c语言
只看楼主 加入收藏
dennisac
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2011-10-27
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:7 
AC水题,,,,c语言
假设y=am+bn;(a,b,m,n,y都是整数)。m和n是两个给定的整数,当a和b取适当的数时,y能取得到最小正整数。求最小正整数y以及满足这种情况的a,b。

Input
m,n

Output

y,a,b

Sample Input

7,9
Sample Output

1,4,-3
搜索更多相关主题的帖子: c语言 正整数 
2011-11-10 20:13
dennisac
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2011-10-27
收藏
得分:0 
C语言求解~
2011-11-10 20:14
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:5 
y等于 m,n的最大公约数

然后式子两边同时除以y,变成关于裴蜀定理形式,可以套解法,也可以直接枚举
2011-11-10 20:26
dennisac
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2011-10-27
收藏
得分:0 
回复 3楼 czz5242199
不懂。。。
2011-11-10 20:39
落叶深蓝色
Rank: 8Rank: 8
来 自:山东
等 级:蝙蝠侠
帖 子:319
专家分:807
注 册:2010-12-8
收藏
得分:5 
看一下,和这个差不多的,http://,貌似是什么扩展欧几里德,8懂
2011-11-10 20:46
czz5242199
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:660
专家分:2400
注 册:2011-10-26
收藏
得分:0 
你直接看数论里裴蜀定理的证明以及各种扩展就好了
2011-11-10 20:54
laznrbfe
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:482
专家分:1599
注 册:2011-5-22
收藏
得分:5 
http://zhidao.baidu.com/question/107995660.html?fr=qrl&cid=983&index=3
不妨设a,b都大于零,a>=b,用带余除法:
a=(x1)b+(r1),其中0=<(r1)<b
b=(x2)(r1)+(r2),其中0=<(r2)<(r1)
(r1)=(x3)(r2)+(r3),其中0=<(r3)<(r2)
.....到第n步,会有(这是因为数列rn单调递减到0)
(rn-3)=(xn-1)(rn-2)+(rn-1)
(rn-2)=(xn)(rn-1)+(rn)
(rn-1)=(xn+1)(rn)+0
容易证明a和b的最大公因数=b和r1的最大公因数=r1和r1的最大公因数=......=(rn)和0的最大公因数,所以(rn)=1,所以倒数第两个式子是
(rn-2)=(xn)(rn-1)+1
即1=(rn-2)-(xn)(rn-1)
由倒数第三个式子(rn-1)=(rn-3)-(xn-1)(rn-2)代入上式,得
1=[1+(xn)(xn-1)](rn-2)-(xn)(rn-3)
然后用同样的办法用它上面的等式逐个地消去(rn-2),...(r1),
得到1=ax+by。
这个是理论上求a,b的方法。
2011-11-10 21:22
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
am+bn = gcd(m,n);
gcd(m,n) = gcd(n,m%n);
gcd(n,m%n) = cn+d(m%n);
cn + d(m%n) = gcd(m,n);
cn + d(m-n(m/n)) = gcd(m,n);
dm + cn-dn(m/n) = gcd(m,n);
dm + (c-d(m/n))n = gcd(m,n);

am+bn = gcd(m,n);
dm + (c-d(m/n))n = gcd(m,n);
对应相等得到a = d,b = c-d(m/n);
递归下去直到去求解am+b0 = gcd(m,0);此方程解为a = 1,b = 0;

                                         
===========深入<----------------->浅出============
2011-11-10 21:30
快速回复:AC水题,,,,c语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017483 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved