《初等数论程耀》PPT课件.ppt
《《初等数论程耀》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《初等数论程耀》PPT课件.ppt(23页珍藏版)》请在三一办公上搜索。
1、XDU_ACM-初等数论,程耀,素数和合数,算术基本定理:任意正整数n可以写成n=2a1*3a2*5a3*,其中a1,a2,a3等为非负整数素数的判定:判定函数 筛法求素数 miller_rabin素性判定,素数的判定,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;,筛法求素数,思考:如果一个数是合数,那么它的素因子都比它小?这样说来:如果我们的当前数是 a,那么所有 a的倍数(当然是2倍以上啦)都不会是素数,可以这样看吧?于是,我们可以一种新的素数判定方法
2、。,筛法求素数,方法:每次用一个素数,去筛掉所有它的倍数。举个例子: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。注意:开头的数一定是素数?,筛法求素数,bool prime maxn;/时间复杂度O(n)?void init()memset(prime,0,sizeof(prime);for(int i=4;i maxn;i+=2)p
3、rimei=1;for(int i=3;i maxn;i+=2)if(!prime i)for(int j=i*i;j maxn;j+=i)prime j=1;,miller_rabin素性判定,miller_rabin是一种概率型的算法,不是确定型的。但是,只要运行次数足够多,一般出错的概率是非常小的,一般10次就好了!算法复杂度是 O(logn)3)算法的正确性是基于费马小定理。费马小定理:对于素数p和任意整数a,有a(p-1)=1(mod p)。反过来,满足a(p-1)=1(mod p),p也几乎一定是素数。,miller_rabin算法分析,bool miller_rabin(LL n
4、)if(n2)return false;if(n=2)return true;if(!(n,witness函数,witness函数用来搜集n是合数的证据。bool witness(LL a,LL n)LL m=n-1;int t=0;LL y;while(!(m,快速幂取模,题目:求出mn(mod p)的值,其中 m=10000,n=100000000。分析:如果直接边乘然后边取模,直接导致 TLE!我们需要一个更优的算法。我们可以发现:这其中包含着大量的重复的子问 题,利用分治的思想可以大大减小运算量。举个例子:27=24*22*21,而2t到2(2t)只需要累乘就好了。,快速幂取模算法分析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初等数论程耀 初等 数论 PPT 课件
链接地址:https://www.31ppt.com/p-5471337.html