数学方法选讲课件.pptVIP

  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文档。上传文档
查看更多
数学方法选讲课件.ppt

数学方法选讲 上海交通大学 刘天树 一、公约数 二、素数 三、置换 四、解递推方程的几个实例 公约数 a,b是两个不全为0的整数,他们的最大公约数记作gcd(a,b),最小公倍数记作lcm(a,b) 命题:a*b=gcd(a,b)*lcm(a,b) 证明:a=p1a1*p2a2*……*pmam b=p1b1*p2b2*……*pmbm gcd(a,b)=p1min(a1,b1)*p2min(a2,b2)*……*pmmin(am,bm) lcm(a,b)=p1max(a1,b1)*p2max(a2,b2)*……*pmmax(am,bm) 而max(ai,bi)+min(ai,bi)=ai+bi a*b=p1a1+b1*p2a2+b2*……*pmam+bm = p1min(a1,b1)+max(a1,b1)*……*pmmin(am,bm)+max(am,bm) =gcd(a,b)*lcm(a,b) 命题成立 欧几里德辗转相除法 定理:gcd(a,b)=gcd(b,a mod b) PASCAL 程序段: Function gcd(a, b :integer):integer; begin if b=1 then gcd:=a else gcd:=gcd(b, a mod b) end; C++程序段: int gcd(int a, int b) { return (b=1)?a:(gcd(b, a%b)); } n个数的最大公约数 gcd(a1, a2, …, an) = gcd( gcd(a1, a2, …, an-1) , an) 把n个数的问题转化成两个数的问题 不定方程的整数解 方程ax+by=c有整数解的充要条件: gcd ( a , b ) | c 设d=gcd(a,b) 则若我们求得一组(x0,y0)满足 ax0+by0=d 即可以得到原方程的一组解: (x0*c/d , y0*c/d) 扩展欧几里德算法 若存在一组解x0,y0,满足 b*x0+(a mod b)*y0=d 则取x=y0,y=x0-(a div b)*y0,有 ax+by=d 这样我们可以用类似辗转相除的迭代法求解。 程序框架 Function extended-gcd(a, b:longint; var x, y:integer); Var x1, y1 :integer; Begin if b=0 then begin extended-gcd:=a; x:=1; y:=0 end else begin extended-gcd:=extended-gcd(b, a mod b, x1, y1); x:=y1; y:=x1-(a div b)*y1; end; end; 素数(prime) 大于1的正整数p被称作素数,如果p仅有的正因子是1和p 素数判定 理论:如果n是合数,则他必有一个小于或等于sqrt(n)的约数。 操作:枚举2至[sqrt(n)]的所有整数,判断其中有无p的约数。 时间复杂度:O(sqrt(n)) Eraosthenes筛法(筛选法) 问题:如何求2-n中所有的素数? 筛选法: 建立一个表,给每个值标记true 从2到n枚举每一个整数p,如果当前p的标记为true,则p为素数 若当前p为素数,则将n以内的p*p , p*(p+1),…都标记为false(被筛去) 伪素数测试 费马小定理 如果p是一个素数,则对于任意的a,若(a,p)=1,则 ap-1=1(mod p) n是一个正整数,若an-1=1(mod n),我们说n是基于a的一个伪素数。 伪素数测试 若一个数是伪素数,则它几乎肯定是素数;若一个数不是伪素数,则它一定不是素数。 我们可以通过多次选取基数a(通常选取2,3,5,7进行测试),如果n都是伪素数,则它几乎可以肯定是素数了。 例 Fibonacci素数 Fibonacci数列:1,1,2,3,5,8,… 若某一个Fibonacci数与任何比它小的Fibonacci数互质,则将其称为Fibonacci素数。 要求输出第k小的Fibonacci素数。 分析 考察所有Fibonacci数对M取余的序列{Si} S1=S2=1 设第一个零元素为Sk=0,那么必有Sk+1=Sk+2=a,故从k+1项开始,相当于前

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档