第三讲-庞敕几里德算法 .ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲-庞敕几里德算法

程序如下: int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } 利用gcd(a,b)求最小公倍数lcm(a,b) 中国剩余定理(孙子定理) 中国古代求解一次同余式组的方法。是数论中一个重要定理 Answer=a(mod m1); Answer=b(mod m2); Answer=c(mod m3); 注释:三数为a b c,余数分别为 m1 m2 m3,%为求余计算, 是“且”运算。 1、分别找出能被两个数整除,而满足被第三个整除余一的最小的数。 k1%b==k1%c==0 k1%a==1; k2%a==k2%c==0 k2%b==1; k3%a==k3%b==0 k3%c==1; 2、将三个未知数乘对应数字的余数再加起来,减去这三个数的 最小公倍数的整数倍即得结果。 Answer = k1×m1 + k2×m2 + k3×m3 - P×(a×b×c); P为满足Answer 0的最大整数; 例题: 例1:一个数除以5余4,除以8余3,除以11余2,求满足条件的最小的自然数。题中5、8、11三个数两两互质。则〔8,11〕=88;〔5,11〕=55;〔5,8〕=40;〔5,8,11〕=440。为了使88被5除余1,用88×2=176;使55被8除余1,用55×7=385;使40被11除余1,用40×8=320。然后,176×4+385×3+320×2=2499,因为,2499440,所以,2499-440×5=299,就是所求的数。 例2:有一个年级的同学,每9人一排多5人,每7人一排多1人,每5人一排多2人,问这个年级至少有多少人 ?(幸福123老师问的题目)题中9、7、5三个数两两互质。则〔7,5〕=35;〔9,5〕=45;〔9,7〕=63;〔9,7,5〕=315。为了使35被9除余1,用35×8=280; 使45被7除余1,用45×5=225;使63被5除余1,用63×2=126。 然后,280×5+225×1+126×2=1877,因为,1877315,所以, 1877-315×5=302,就是所求的数。 * * * 模板来自于 * 模板来自于 * 模板来自于 * 模板来自于 * 第三讲 欧几里德算法 | | 刘奎 计算两个正整数a,b的最大公约数 用途 ab 且a mod b 不为0 条件 辗转相除法 别名 gcd(a,b) = gcd(b,a mod b) 原理 欧几里德算法 用途 条件 别名 原理 irst 欧几里德算法证明 F a 表示成 a = kb + r,则r = a mod b 假设d是a,b的一个公约数 d|a,d|b 而r = a - kb,因此d|r。 d也是(b,a mod b)的公约数。 (a,b)和(b,a mod b)的公约数 是一样的,其最大公约数也必然相等。 econd 唯一分解定理 S 算数基本定理又名唯一分解定理 内容: 任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 这里P1P2P3......Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式。 、 gcd(a,b)*lcm(a,b)=a*b lcm(a,b)=a/gcd(a,b)*b 先除后乘,可有效防止数据溢出 hirdly 扩展欧几里德算法 T 。 如果一个方程含有两个未知数,并且所含未知项的次数是1,那么这个整式方程就叫做二元一次方程,有无穷个解,若加条件限定有有限个解。二元一次方程的一般形式:ax+by+c=0其中a、b不为零。这就是二元一次方程的定义。x+y=1是一个典型的二元一次不定方程 形如ax+by=c的不定方程称为二元一次不定方程,显然 (1)a=0或者b=0时,方程的解确定 (2)c不是gcd的倍数时,方程无解。 所以只考虑ab!=0且gcd(a,b)能整除c 的情况。 推导过程省略 gcd(a,b)=a*x+b*y 显然gcd(a,0)=1*a-0*0=a 公式推导过程: 已知a, b求解一组p,q使得p * a+q * b = Gcd(a, b) 对于a = b, b = a % b 而言,我们求得 x, y使得 ax + by = Gcd(a, b) a=k*b+r === r=a-k*b k=a/b r=a%b=a-k*b === b = a % b = a - a / b * b (注:这里的/是程序设计语言中的除法) 那么可以得到: ax + by = Gcd(a, b) ===

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档