- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACM中及数学问题数论部分
* 我们理解下欧几里德算法最坏情况为什么是斐波那契数列相邻的两项。 首先我们口述一下利用欧几里德算法求解(13, 8),(12, 8)的过程。 (13,8)(8,5)(5,3)(3,2)(2,1) (12,8)(8,4) 所以我们看出,当两数互素的时候,辗转相除的次数比较多。 我们再看,a = k*b + c, 得出c = a - k*b,当k=1时,c减少得最少,相应地,辗转相除的次数比较多。 所以从上述两点可以看出,同时满足k = 1,两数最大公约数为1时,序列递减得最慢,即辗转相除法的次数最多。 而这种情况展开来正好是斐波那契数列。 * 下面我们讲求最大公约数的另一算法stein算法。 gcd(ka,kb)=k*gcd(a,b) 2.当k与b互素时,gcd(ka,b)=gcd(a,b) k与b互素说明 k与b没有公约数,很显然,ka与b的公约数即为a 与 b的公约数 3. (a, b) = (b, a-b) a = b + (a - b),利用整除基本性质5 * 我们看下具体例子,利用上述的原理将下列情况化简。 两个奇数的差必定是偶数。 * * 用逻辑语言描述就是这样, 算法终止的具体情况:两个都为奇数而且相等的时候 r 记录了出现两个都是偶数的次数,也就是记录了2的个数 ar , a = a * 2^r 移位运算:左移1位,即该数乘以2;右移一位,即该数除以2. * 算法评价: 它的核心精髓跟欧几里德算法一样,将两个大数的最大公约数转化为两个较小数的最大公约数 优点:加法,减法和移位运算,是最基本的运算,时间消耗最小 乘法,除法,取余运算较慢 扩展欧几里德算法,顾名思义,它其实仍是欧几里德算法,只是其中加入了某些东西。 * 这次不仅要求最大公约数,而且请在利用欧几里德算法求解的过程中,将每一步的余数都表示为63与81的线性组合。 a = 81, b = 63, a mod b = 18 81 = 63 + 18 - 18 = 81-63 a ← 63, b ← 18, a mod b = 9 63 = 3*18 + 9 - 9 = 63 - 3*18 = 63 – 3*(81-63) = (-3)*81 + 4*63 a ← 18, b ← 9, a mod b = 0 * * * 即它能用来解二元模线性方程。 * * * * 同模情况下,有这样的性质 观察:乘法原则 8 mod 7 = 1 7 mod 7 = 0 16 mod 7 = 2 64 mod 7 = 8 N = a * k + 1 N mod a = 1 10*N = a *10 * k + 10 所以10N mod a = 10 加法原则: 8 mod 7 = 1 10 mod 7 = 3 18 mod 7 = 4 中国剩余定理: 基底 讨论两个互素的数 3, 5 在0 – 14之间找到一个数,使得这个数除以3余1, 除以5余2, 经求解该数为7,而且该数唯一。 不限定数:7, 22, 37 中间相差一个[3, 5] = 15, 余数不变 3k1 + 1 5k2+ 2 7 + 15k, k是整数 1) 3k1 + 1, 5k2 (10) 2) 3k1, 5k2+2 (12) 3) 3k1 + 1, 5k2 + 2 (22) 如何理解: 取余的加法原则 10 mod 3 = 1 12 mod 3 = 0 10 mod 5 = 0 12 mod 5 = 2 3k1 + 2, 5k2 + 3 标准解法: 1) 3k1 + 1, 5k2 (10) 2) 3k1, 5k2 + 1 (6) 2 * 10 + 3*6 = 38 38-[3, 5]*2 = 8 利用了加法原理与乘法原理 2k1 + 1, 3k2 + 2, 5k3 + 3 2k1 + 1, 3k2, 5k3 2k1, 3k2+1, 5k3 2k1, 3k2, 5k3+1 为什么重视中国剩余定理: 2, 3, 5, 7(相互互素) 乘积 为210 结论: 1)0-210之间的任何数都可以用2, 3, 5, 7的余数表示,而且表法唯一; 2)余数的加法和乘法运算,通过余数来表达数字(用来表示大整数) 这个例子说明: 1)对于给定的两个互素的模3,5 2)在0到[3,5](3与5的最小公倍数)之间的数能被它们的余数唯一确定。 也就是说,在这样的条件下,7与这个余数组(1,2)一一对应。 * 再看一个具体例子,我们把“物不知数”问题抽象表示成一个模线性方程组,(“物不知数”问题是中国古代描述中国剩余定理的原始问题)求满足上述条件的最小正整数x。 宋代秦九韶在《数书九章》对这个问题做出了完整的解答。 * 我们给出“物不知数”问题的标准解法: 首先,
文档评论(0)