数学定理类
TimEckel
救赎之道,就在其中
展开
-
欧拉函数
关于欧拉函数有如下几点性质: 1、phi(1) = 1 2、若n是质数,那么phi(n) = n-1 3、若n是质数x的k次幂,phi(n) = (x-1)*x^(k-1) 4、若m,n互质,那么phi(m*n) = phi(m)*phi(n) 5、若n是奇数,那么phi(2*n) = phi(n) 6、若x,y是质数,且n = x*y,那么phi(n) = (x-1)*(y-1) 6原创 2017-11-26 21:23:17 · 497 阅读 · 0 评论 -
欧拉函数模板
5 LL eulr(LL n) 6 { 7 LL ans=n; 8 for(LL i=2;i*i<=n;i++) 9 { 10 if(n%i==0) 11 { 12 ans=ans/i*(i-1); 13 while(n%i==0) 14原创 2017-11-26 20:08:44 · 875 阅读 · 0 评论 -
中国剩余定理
①设正整数两两互素, 中国剩余定理给出了以下的一元线性同余方程组: 中国剩余定理说明:假设整数m1,m2, … ,mn两两互质,则对任意的整数:a1,a2, … ,an, 方程组(S) 有解,并且通解可以用如下方式构造得到: 设是整数m1,m2, … ,mn的乘积,并设是除了mi以外的n- 1个整数的乘积。 设通解形式为在模M的意义下,方程组(S)只有一个解: poj1006原创 2017-11-26 21:41:02 · 305 阅读 · 0 评论 -
威尔逊定理
当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )。这是威尔逊给出了判定一个自然数是否为 素数 的 充分必要条件但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大。初等数论四大天王之一。 hdu2973#include <iostream>#include<cstdio>using namespace std;#define maxn 1000010int a[max原创 2017-11-26 22:23:57 · 661 阅读 · 0 评论 -
拓展欧几里德
首先, ax+by = gcd(a, b) 这个公式肯定有解 (( •̀∀•́ )她说根据数论中的相关定理可以证明,反正我信了)所以 ax+by = gcd(a, b) * k 也肯定有解 (废话,把x和y乘k倍就好了)所以,这个公式我们写作ax+by = d,(gcd(a, b) | d)gcd(a, b) | d,表示d能整除gcd,这个符号在数学上经常见 那么已知 a,b 求 一组解 x,y原创 2017-11-26 22:27:44 · 268 阅读 · 0 评论 -
Miller_Rabin算法
定理一:假如p是质数,且(a,p)=1,那么a^(p-1)≡1(mod p)。即假如p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。(费马小定理)该定理的逆命题是不一定成立的,但是令人可喜的是大多数情况是成立的。于是我们就得到了一个定理的直接应用,对于待验证的数p,我们不断取a∈[1,p-1]且a∈Z,验证a^(p-1) mod p是否等于1,不是则p果断不是素数,共取s次。其中原创 2017-11-26 22:33:12 · 335 阅读 · 0 评论 -
大数因数分解Pollard_rho 算法
大数分解最简单的思想也是试除法,这里就不再展示代码了,就是从2到sqrt(n),一个一个的试验,直到除到1或者循环完,最后判断一下是否已经除到1了即可。但是这样的做的复杂度是相当高的。一种很妙的思路是找到一个因子(不一定是质因子),然后再一路分解下去。这就是基于Miller_rabin的大数分解法Pollard_rho大数分解。Pollard_rho算法的大致流程是 先判断当前数是否是素数(Mill原创 2017-11-26 22:34:30 · 886 阅读 · 0 评论 -
快速幂
a的b次方怎么求pow(a, b)是数学头文件math.h里面有的函数可是它返回值是double类型,数据有精度误差LL pow(LL a, LL b){//a的b次方 LL ret = 1; for(LL i = 1; i <= b; i ++){ ret *= a; } return ret;}如果数据量大而且要modLL pow_mod(LL原创 2017-11-26 22:41:53 · 251 阅读 · 0 评论