欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    初等数论程耀优秀PPT.ppt

    • 资源ID:73436379       资源大小:1,009.50KB        全文页数:23页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    初等数论程耀优秀PPT.ppt

    初等数论程耀第1页,本讲稿共23页素数和合数素数和合数算术基本定理:任意正整数n可以写成n=2a1*3a2*5a3*,其中a1,a2,a3等为非负整数素数的判定:判定函数 筛法求素数 miller_rabin素性判定第2页,本讲稿共23页素数的判定素数的判定bool Is_prime(int n)int t=(int)sqrt(n);for(int i=2;i=t;i+)if(n%i=0)return false;return true;第3页,本讲稿共23页筛法求素数筛法求素数思考:如果一个数是合数,那么它的素因子都比它小?这样说来:如果我们的当前数是 a,那么所有 a的倍数(当然是2倍以上啦)都不会是素数,可以这样看吧?于是,我们可以一种新的素数判定方法。第4页,本讲稿共23页筛法求素数筛法求素数方法:每次用一个素数,去筛掉所有它的倍数。举个例子:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2829 30筛去2的倍数,剩下3 5 7 9 11 13 15 17 19 21 23 25 27 29筛去3的倍数,剩下5 7 11 13 17 19 25 29 。注意:开头的数一定是素数?第5页,本讲稿共23页筛法求素数筛法求素数bool prime maxn;/时间复杂度O(n)?void init()memset(prime,0,sizeof(prime);for(int i=4;i maxn;i+=2)primei=1;for(int i=3;i maxn;i+=2)if(!prime i)for(int j=i*i;j maxn;j+=i)prime j=1;第6页,本讲稿共23页miller_rabin素性判定素性判定miller_rabin是一种概率型的算法,不是确定型的。但是,只要运行次数足够多,一般出错的概率是非常小的,一般10次就好了!算法复杂度是 O(logn)3)算法的正确性是基于费马小定理。费马小定理:对于素数p和任意整数a,有a(p-1)=1(mod p)。反过来,满足a(p-1)=1(mod p),p也几乎一定是素数。第7页,本讲稿共23页miller_rabin算法分析算法分析bool miller_rabin(LL n)if(n2)return false;if(n=2)return true;if(!(n&1)return false;for(int i=1;i=1;t+;/这个地方是通过一个推论来优化的,x2=1(mod n),当那个n是合数的时候,就会出现非平凡平方根!LL x=quick_mod(a,m,n);for(int i=1;i=t;i+)y=muti(x,x,n);if(y=1&x!=1&x!=n-1)return true;x=y;if(y!=1)return true;else return false;第9页,本讲稿共23页快速幂取模快速幂取模题目:求出mn(mod p)的值,其中 m=10000,n=1;/n右移两位,相当于除2t=t*t%n;return ret;PS:与快速幂取模类似的还有矩阵快乘,这里不展开第12页,本讲稿共23页最大公约数(最大公约数(gcd)普通算法:求出c=min(a,b),如果找到c|a&c|b,那么c减一,然后循环继续,直到 找到 c满足条件为止。欧几里得算法:int gcd(int a,int b)return b?gcd(b,a%b):a;第13页,本讲稿共23页欧几里得算法的证明欧几里得算法的证明证明:令m是a,b 的公约数,而a可以表示为a=n*b+r,其中r=0&rb那么r=a-n*b,可以知道r 能够被 m 整除。同理:如果m是r 和 b 的公约数。那么,a=n*b+r,所以,m也能够整除a.由上面的两条可知:a,b和b,r具有相同的公约数,故欧几里得算法成立。第14页,本讲稿共23页扩展欧几里得算法扩展欧几里得算法应用:常用来求解形如a*x+b*y=gcd(a,b)的二元一次不定方程代码如下:void extended_gcd(int a,int b,int&x,int&y)if(b=0)x=1;y=0;return;extended_gcd(b,a%b,x,y);int temp=x;x=y;y=temp-a/b*y;第15页,本讲稿共23页扩展欧几里得算法分析扩展欧几里得算法分析证明:令d=gcd(a,b);a*x+b*y=d.b*x1+(a%b)*y1=d.那么我们可以由x1,y1的值反推出x,y的值。把两式联立,消去d,并且用a-a/b*b来替换a%b;然后可以令x=y1,推出y=x1-a/b*y1;第16页,本讲稿共23页扩展欧几里得算法的注意事项扩展欧几里得算法的注意事项形如a*x+b*y=c的方程,如果gcd(a,b)能够整除c,那么此方程有解,否则无解。并且它的特解形式为x=c/gcd(a,b)*x0,y=c/gcd(a,b)*y0(其中 x0,y0是用扩展欧几里得算法求出的解)通解的形式:x=x0-b/d*ty=y0+a/d*t其中:t是整数。第17页,本讲稿共23页a关于模关于模n的乘法逆元的乘法逆元什么是乘法逆元?如果a*b=1(mod n),那么b就是a 关于模n的乘法逆元,此时,也可以称作a与b互为乘法逆元。第18页,本讲稿共23页乘法逆元的应用乘法逆元的应用题目:输出C(n,m)%p,其中p是一个素数。n10000.思考:如果使用边除边模的方法,也会有出现大数,导致精度溢出。(a/b)%p!=(a%p)/(b%p)%p;解决方案:除以一个数并取模,就相当于是乘以它的逆元然后再取模。第19页,本讲稿共23页如何求解乘法逆元如何求解乘法逆元上式等价a*x+b*n=1的解,所以可以应用扩展欧几里得算法来求出x的值。为了保证x是正整数,通常需要加上:x=(x%n+n)%n;int inv(int a,int n)int x,y;extended_gcd(a,n,x,y);x=(x%n+n)%n;return x;第20页,本讲稿共23页扩展阅读扩展阅读AekdyCoin的博客:http:/ you for listening第23页,本讲稿共23页

    注意事项

    本文(初等数论程耀优秀PPT.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开