2012年3月12日

算法导论-----数论-----元素的幂

摘要: 1.<a>为a反复相乘生成的子群,(a)为a在中的阶,phi为规模2.欧拉定理:对n>1,=1(modn),对所有a属于成立3.费马定理:p素数,,=1(modp) 对所有a属于成立4.原根:(g)=||,对模n,每个元素都是g的幂,g是的原根或生成元若包含一个原根,则循环群 5.对所有素数p>2和正整数e,满足循环群n的值为2,4,6.离散对数:g是中的原根,a是中任一元素,存在z使,=a(modn),z称为离散对数,即7.离散对数定理:g是原根,则=(modn)成立,当且仅当x=y(modφ(n))成立8.p 是奇素数且e>=1,则方程仅有两个解,x=1和x= 阅读全文

posted @ 2012-03-12 19:50 Inpeace7 阅读(845) 评论(0) 推荐(0) 编辑

Poj 2603 约数个数和

摘要: 水题,求约数个数和,p1p2…pr为素数,约数个数σ(n)=(1+e1)(1+e2)…(1+er)约数和τ(n)=(1+p1++…+)(1+p2++…+)…(1+pr++…+)σ(n),τ(n)都为乘性函数注意结果要取个位数,WA一次#include <iostream>#include <stdio.h>#include <string.h>using namespace std;const ... 阅读全文

posted @ 2012-03-12 17:39 Inpeace7 阅读(411) 评论(0) 推荐(0) 编辑

Zju2678 大数gcd

摘要: 画图推导,大数gcd,摘自网上的模板#include<stdio.h>#include<string.h>#define maxlen 1000+2 //数据的最大长度struct HP { int len, s[maxlen]; } ; //存储数据的结构char s1[maxlen],s2[maxlen];//存储输入的两个数据void PrintHP(HP x) //输出{ for(i... 阅读全文

posted @ 2012-03-12 16:23 Inpeace7 阅读(288) 评论(0) 推荐(0) 编辑

Poj 2773 Happy 2006(枚举互素数)

摘要: Phi(m)为与乘法群模m的规模,将区间分段,每段长度m,每个区间内有phi(m)个与m互素的数,枚举第一段的所有互素数coprime[i],结果为m*(k/phi[m])+coprime(k%phi[m]),注意特殊处理phi[m]整数倍数的数。参考网上的一些代码,学会了快速求互素数的方法。时间:47ms。上代码:#include <iostream>#include <stdio.h>#include <string.h>using namespace std;const int MAX=1000000;bool isprime[MAX+10],isfa 阅读全文

posted @ 2012-03-12 11:34 Inpeace7 阅读(308) 评论(0) 推荐(0) 编辑

导航