2017年11月26日训练笔记

        昨天数论20点关闭,我一直没看进度条还以为还是今天晚上关,所以做的少了一点,心里还是怪不舒服,今天看了看数论的书,看了几个博客和题目,上个数论的总结也有更新。这里也另外补充一些。这组专题应用比较多的有:快速幂,解线性同余方程,分解定理。


解线性同余方程,即不互质的中国剩余定理,这个知识点看了很久才明白些,应用还是比较多的,


       

题目:hdu - 1788 - Chinese remainder theorem againhdu - 3579 - Hello KikiHDU - 1573 - X问题

           


        威尔逊定理:

        威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )

        题目:hdu - 2973 - YAPTCHA



        佩尔方程:  

        解  类型方程的一种算法,就是x^2-d*y^2=1的第一个解x0,y0已知的话,其余的值有一个递推公式了:
X(n)=X(n-1)*x0+d*Y(n-1)*y0,Y(n)=X(n-1)*y0+Y(n-1)*x0;

         题目:POJ - 1320 - Street Numbers


         原根
         x是p的原根是说{ (x i mod p) | 1 <= i <= p-1 } 等于 { 1, ..., p-1 }.
         性质:模m有原根的充要条件是m= 1,2,4,p,2p,p^n,其中p是奇质数,n是任意正整数。对正整数(a,m) = 1,如果 a 是模 m 的原根,当模m有原根时,它有φ(φ(m))个原根。

         题目:poj - 1284 - Primitive Roots


        欧拉定理
        在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则:



        费马小定理:
        a是不能被质数p整除的正整数,则有a^(p-1) ≡ 1 (mod p),证明这个定理非常简单,由于p是质数,所以有φ(p) = p-1,代入欧拉定理即可证明。推论:对于任意正整数a,有a^p ≡ a (mod p),因为a能被p整除时结论显然成立。


小于n且与n互质的数的和为n*Euler(n)/2。首先欧拉函数Euler(n)是求小于n且与n互质的数的个数,再有gcd的性质:如果gcd(n,i)=1,则gcd(n,n-i)=1那么,可以看做在[1,n-1]中与n互质的数是成对出现的,即如果i与n互质,则(n-i)也与n互质(Euler(n)为偶数)。而且可以发现这对数(i与n-i)的和为n。进一步得到结论:小于n且与n互质的数的和为n*Euler(n)/2;

         题目:hdu - 3501 - Calculation 2


      

         再贴上看到他人整理的一些公式:


(1)   整数的唯一分解定理:

      任意正整数都有且只有一种方式写出其素因子的乘积表达式。

      A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)   其中pi均为素数


(2)   约数和公式:

对于已经分解的整数A=(p1^k1)*(p2^k2)*(p3^k3)*....*(pn^kn)

有A的所有因子之和为

    S = (1+p1+p1^2+p1^3+...p1^k1) * (1+p2+p2^2+p2^3+….p2^k2) * (1+p3+ p3^3+…+ p3^k3) * .... * (1+pn+pn^2+pn^3+...pn^kn)


(3)   同余模公式:

(a+b)%m=(a%m+b%m)%m

(a*b)%m=(a%m*b%m)%m


(4)用递归二分求等比数列1+pi+pi^2+pi^3+...+pi^n:

一、若n为奇数,一共有偶数项,则:
      
1 + p + p^2 + p^3 +...+ p^n

      = (1+p^(n/2+1)) + p * (1+p^(n/2+1)) +...+ p^(n/2) * (1+p^(n/2+1))   

     这里将其分成两半,提后一半的公因式p^(n/2+1)
      = (1 + p + p^2 +...+ p^(n/2)) * (1 + p^(n/2+1))

 

二、若n为偶数,一共有奇数项,则:
      
1 + p + p^2 + p^3 +...+ p^n

      = (1+p^(n/2+1)) + p * (1+p^(n/2+1)) +...+ p^(n/2-1) * (1+p^(n/2+1)) + p^(n/2)

     可知n-1为偶数,对前偶数项进行上述操作再加上最后一项p^n
      = (1 + p + p^2 +...+ p^(n/2-1)) * (1+p^(n/2)) + p^n;


(5)反复平方法计算幂次式p^n


   以p=2,n=8为例

   常规是通过连乘法求幂,即2^8=2*2*2*2*2*2*2*2

   这样做的要做8次乘法

 

   而反复平方法则不同,

   定义幂sq=1,再检查n是否大于0,

While,循环过程若发现n为奇数,则把此时的p值乘到sq

{

   n=8>0 ,把p自乘一次, p=p*p=4     ,n取半 n=4

   n=4>0 ,再把p自乘一次, p=p*p=16   ,n取半 n=2

n=2>0 ,再把p自乘一次, p=p*p=256  ,n取半 n=1,sq=sq*p

n=1>0 ,再把p自乘一次, p=p*p=256^2  ,n取半 n=0,弹出循环

}

则sq=256就是所求,显然反复平方法只做了3次乘法


(6)费马小定理

费马小定理数论中的一个重要定理,其内容为: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值