数论入门.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数论入门.docx

数论入门 PAGE4 / NUMPAGES4 欧几里得算法 欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) (ab 且a mod b 不为0) 证明: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)的公约数是一样的,其最大公约数也必然相等,得证 欧几里得算法模板 int gcd(int n,int m) { int t,r; if(nm) { t=n; n=m; m=t; } while((r=n%m)0) { n=m; m=r; } return m; } 题目:HDU 1108 HDU 1576 扩展欧几里得 定理 对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整 数对 x,y ,使得 gcd(a,b)=ax+by。 求解 x,y的方法的理解 设 ab。 1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0; 2,ab!=0 时 设 ax1+by1=gcd(a,b); bx2+(a mod b)y2=gcd(b,a mod b); 根据朴素的欧几里德原理有 gcd(a,b)=gcd(b,a mod b); 则:ax1+by1=bx2+(a mod b)y2; 即:ax1+by1=bx2+(a-[a/b]*b)y2=ay2+bx2-(a/b)*by2; 根据恒等定理得:x1=y2; y1=x2-[a/b]*y2; 这样我们就得到了求解 x1,y1 的方法:x1,y1 的值基于 x2,y2. 上面的思想是以递归定义的,因为 gcd 不断的递归求解一定会有个时候 b=0,所以递归可以 扩展欧几里得代码 int ext_gcd( int a, int b, int x, int y ) { int t, ret; if( b==0 ) { x = 1, y = 0; return a; } ret = ext_gcd( b, a%b, x, y ); t = x, x = y, y = t-a/b*y; return ret; } 中国剩余定理 中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国剩余定理。 简介 数学公式 (中国剩余定理CRT)设m1,m2,...,mk是两两互素的正整数,即gcd(mi,mj) =1,i≠j,i,j = 1,2,...,k 则同余方程组: x≡b1 (mod m1) x≡b2 (mod m2) ... x≡bk (mod mk) 模[m1,m2,...,mk]有唯一解,即在[m1,m2,...,mk]的意义下,存在唯一的x,满足: x≡bi mod [m1,m2,...,mk],i = 1,2,...,k 结论 设m1, …, mk是两两既约的正整数。那么,对任意整数a1, …, ak,一次同余方程组: x ≡ aj(mod mj),1≤j≤k (3)   必有解,且解数为1。事实上,同余方程组(3)的解是: x ≡ M1M1-1a1 + … + MkMk-1ak(mod m), (4)   这里,m = m1…mk,m = mjMj(1≤j≤k),以及Mj-1是满足: MjMj-1 ≡ 1(mod mj),1≤j≤k (5)   的一个整数(即Mj是对模mj的逆)。 中国剩余定理(同余方程组)小结 中国余数定理: 设 n=n1*n2...nk, 其中因子两两互质.有: a(a1,a2,...,ak), 其中ai = a mod ni, 则 a和(a1,a2,...,ak)关系是一一对应的.就是说可以由 a求出(a1,a2,...,ak), 也可以由(a1,a2,...,ak)求出a 推论1: 对于 a=ai (mod ni) 的同余方程,有唯一解 下面说说由(a1, a2, ..., ak)求a的方法: 定义 mi = n1*n2*...nk / ni; ci = mi(mf mod ni); 其中 mi*mf mod ni = 1; 则 a = (a1*c1+a2*c2+...+ak*ck) (m

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档