数论 随记

 图片太多,上传嫌麻烦,博客园上有我的完整版敲打

数论随记(一)

数论随记(二)


以下为大致内容,适合回顾复习,不适学习


1.   秦九昭算法:<多项式>

                     ||

                     \/

 

求n次多项式f(x)的值就转化为求n个一次多项式的值。

 

  HDU 1111

处理 :减ai后,除B,直到0为止

复数的模  |Z|=|a+bi|=sqrt(a*a+b*b)   , 除法(a+bi)/(c+di)=(ac+bd)/(c*c+d*d)+(bc-ad)/(c*c+d*d)  (分子分母同乘(c-di))

2.   差分   <多项式>

前向差分

函数的前向差分通常简称为函数的差分。对于函数 ,如果在等距节点:

则称 ,函数在每个小区间上的增量 为 一阶差分。

在微积分学中的有限差分(finite differences),前向差分通常是微分离散的函数中的等效运算。差分方程的解法也与微分方程的解法相似。当 是多项式时,前向差分为Delta算子(称 为差分算子[2]),一种线性算子前向差分会将多项式阶数降低 1

逆向差分

对于函数 ,如果:

则称 为 的一阶逆向差分。

一阶差分的差分为二阶差分,二阶差分的差分为三阶差分,其余类推。记:

为 的 阶差分。]-------[From Wikipedia]

 

HDU1121

处理:计算xi相邻两项差 得序列x2i,计算x2i相邻两项差 得序列x3i,重复以上过程,直到xni的各项值相等。再回算。

 

3.   抽屉原理

任何一个自然数都可分解质因数。N!=1*2*3*4*5*6*...*N=2^a*3^b*5^c*7^d......=(2*5)^c*2^(a-c)*3^b*7^d......=10^c*2^(a-     c)*3^b*7^d....

在分解质因数时小的质数的幂次一定不小于大的质数的幂次大,所以a>=c。求 N! (1*2*3*4*5*...*N)里有多少个5其实可以转化成: 
N!中:是5的倍数的数+是5^2的倍数的数+5^3..... 
如50!: 
含有10个5的倍数的数:5,15,20,25,30,35,40,45,50 【50/5=10】 
含有2个5^2的倍数的数:25,50【50/(5^2)=2】 
可见N!中一共有12个5相乘,那么尾0也必有12个 

HDU1124

 

4.   i^2%m

n:1~  循环结m (5: 1 4 4 1 0          6: 1 4 3 4 1 0       7: 1 4 2 2 4 1 0         21: 1 4 9 16 4 15 7 1 18 16 16 18 1 7 15 4 16 94 1 0)

对称:m/2

推广:i^x%m 循环结都是m,若x为偶数,关于m/2对称

HDU1153

处理: 如果 a[1%n] != a[2%n],那么 a[2%n] != a[4%n],那么 a[1%n] == a[4%n];

如果 a[1%n] == a[2%n],那么 a[2%n] == a[4%n],那么 a[1%n] == a[4%n]。

所以 a[1%n] == a[4%n]

同样的方法得到:

a[1%n] == a[9%n],

a[1%n] == a[16%n],

所有下标是 i 平方 mod n 都相等,下标不是 i 平方 mod n 都相等。

 

5.   扩展欧几里得    <二元一次方程>

                                                                                                    例:a=60, b=22;

int x=1,y=0,xx=0,yy=1;                        改良版:ax+by=bx’+(a-a/b)y’

int gcd(int a,int b)                                int gcd(int a,int b)

{                                                  {

   if(b==0)                                         intt,d;

       return a;                                         if(b==0)

   int tx,ty;                                       {    x=1;

   tx=x,ty=y;                                                y=0;

    x=xx,y=yy;                                           returna;  }

    xx=tx-(a/b)*xx,yy=ty-(a/b)*yy;                   d=gcd(b,a%b);

   gcd(b,a%b);                                       t=x, x=y, y=t-(a/b)*y;

}                                                       returnd;

                                              }

----《数论概论》

 

推论:线性丢番图方程(二元一次方程)ax+by=c有解          gcd(a,b)|c                     否则无解;

      解为:x=x0+(b/d)*k  , y=y0-(a/d)*k    (d=gcd(a,b))

 

 

6.   逆元

a*x 1(mod m)

1.   扩展欧几里得解法:

前提:gcd(a,m)=1;

处理:a*x 1(mod m)      a*x+m*y=1;  扩展欧几里得解得x0;

x=x0+k*m/gcd(a,m)   逆元结果:x=x0>0?(x0%m):(x0%m+m);

HDU1211

2.   费马小定理解法:

前提:gcd(a,m)=1; m为素数

处理:

  逆元结果 。

 

 

7.   素因子分解系列

n = p1 ^ e1 * p2 ^ e2 *..........*pn ^ en

分解时,素数判断只需到

大素数判断和素因子分解(miller-rabin,Pollard_rho算法)

 

1.   素因子个数

sum ( n)= ( 1 +e1 ) * ( 1 +e2 ) * ...* ( 1 +en );

sum (n * n) = (1+2*e1)*(1+2*e2)*...*(1+2*en) ;

HDU1299

2.   因子和

Sum=(p1^0+p1^1….p1^e1)*(p2^0+p2^1…p2^e2)……(pn^0+…pn^en);

 

        =    

因子和 s是积性函数,即 :gcd(a,b)=1==> s(a*b)= s(a)*s(b)

HDU1452/**/

3.欧拉函数   (小于等于n的,与n互质的数的个数)

    

 (mn)=  (n)*  (m)只在gcd(n,m)=1时成立(积性)

HDU1787

 

8.   素数筛选

Bool prime[N];

void is_prime()

{

   memset(prime,0,sizeof(prime));

   for(int i=2;i<N;i++)

    {

       if(!prime[i])

       {

           for(int j=i+i;j<N;j+=i)

                prime[j]=1;

       }

    }

}

HDU1333   

        

9.    中国剩余定理(同余方程组,素数)

 

1.互质

中国剩余定理给出了以下的一元线性同余方程组:

            ( m1,m2…..mn互质)

解法1:例:

 1 ( mod 3)

x  2 ( mod 5)

x   3 ( mod 7)

 

我们有 M = 3 *5 * 7 = 105 ,  M1 = 105/3 = 35 , M2 = 105/5 = 21 ,M3 = 105/7 = 15.

为确定 y1 ,解35y1  1( mod 3)(等价的 2y1  1 ( mod 3)) (求逆元),得y1 2 (mod  3 ) .

解 21y2 1 ( mod 5) ,得y 2 1 ( mod  5) . 最后,解 15y3    1( mod 7 )得 y3   ( mod  7 ) .

因此,X  1 * 35 *2 + 2 * 21 *1  + 3 * 15 *1 157    52( mod 105 ) .

可以验证满足X 52 (mod  105 )的 X 是同余方程组的解 。

解法2.迭代法

       见《初等数论及其应用》 p117

HDU1370 /*中国剩余定理*/

2.非互质

  合并方程法//

 

 

                  ||

                  \/

x * +a1) mod ( )       ( 为  模 的逆元, g=gcd(m1,m2) )

HDU1573/*中国剩余定理*/

 

 

10. 公式

1.  a  b(mod m)         (a modm)   b (mod m)              (化简);

HDU1395            (2^x  1(mod n)                2^x%n  1(mod n) )

2.  x a(mod m)                 x*k a*k(mod m);

3.  x n-a(mod m)                 x+a n(mod m);           HDU1788

4.  gcd(a,b)=k          gcd(a/k,b/k)=1;

5.  a%k=             (变型:  %k=   )          HDU1852

如果m与k互素,则(a/m)%k=a*m^(phi(k)-1)%k

6.a≡b(mod m),c≡d(mod m)    a±c≡b±d(mod m)   ac≡bd(mod m)

 

11. 容斥原理

      

HDU1695/*容斥,欧拉*//*莫比乌斯反演*/

 

12. 莫比乌斯反演

 

反演公式:

 

                    (形式二: )

其中,

 

 =

 

 为积性函数,称为 莫比乌斯函数。

                             ||  性

\/  质
                                      1.      


             2. 

HDU1695 /**/

 

 

13. 规律

1.  a+b+ab         (a+1)(b+1)-1   

n=(a+1)(b+1)-1=(a1+1)(a2+1)(b1+1)(b2+1)-1=…=(a1+1)(a2+1)(a3+1)…( +1)-1

HDU1719

2.

 

 

14. 快速幂取模

二分思想,秦九昭算法

typedef long long LL;

LL quick_mod(LL a,LL b,LL k)

{

   LL ans=1;

   while(b>0)

    {

       if(b&1)

       {

           ans=ans*a%k;

       }

       a=a*a%k;

       b>>=1;

    }

   return ans;

}

 

15. 数论四大定理

1. 威尔逊定理

若p为质数,则p可整除(p-1)!+1。

2.   欧拉定理

若gcd(a,n) = 1,则a^φ(n) ≡ 1 (mod n)

3.   费马小定理

p是质数,若p不能整除a,则 a^(p-1) ≡1(mod p),

若p能整除a,则a^(p-1) ≡0(mod p)。

(费马大定理)当整数   时,关于   的方程   没有正整数解。

      (伪素数)满足公式但P非质数。若n能整除2^(n-1)-1,并n是非偶数的合数,那么n就是伪素数。HDU1905

      (卡米切尔数)对于合数n,如果对于所有正整数b,b和n互素,都有同余式b^(n-1)≡ 1 (mod n)成立,则合数n为Carmichael数。

4.中国剩余定理

见9.

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值