数论
oi系列比赛中数论的应用啊。对noip提高组肯定很有用。
千杯湖底沙.
退役了。
OI就到此为止吧。
呃我又回来了
展开
-
《算法导论》学习笔记——扩展欧几里得原理
扩展欧几里得算法的原理扩展欧几里得算法即欧几里得算法的一个变形。我们先来看《算法导论》上的一段伪代码。EXTENDED-EUCLIDif b==0return(a,1,0)else(d_,x_,y_)=EXTENDED-EUCLID(b,a mod b)(d,x,y)=(d_,y_,x_-round(a/b)*y_)return (d,x,y)我们可以发现递归到最后是求出原创 2018-02-05 13:26:13 · 356 阅读 · 0 评论 -
《算法导论》学习笔记——如何证明有无穷多个素数
证明的定理在自然数集合中,素数有无穷多个。证明假设我们已知这么几个素数p1,p2,p3……pn'>p1,p2,p3……pnp1,p2,p3……pnp_1,p_2,p_3……p_n,我们需要证明的是已知这些素数能推出第n+1'>n+1n+1n+1个素数,那么数学归纳法就可以证明有无穷多个素数了。 我们构造一个新数d=p1×p2×p原创 2018-02-05 12:34:05 · 1046 阅读 · 0 评论 -
《算法导论》学习笔记——GCD定理的证明
GCD定理GCD定理是欧几里得算法的灵魂。欧几里得算法就是我们以前说的“辗转相除法”。 GCD定理: gcd(a,b)=gcd(b,a%b)'>gcd(a,b)=gcd(b,a%b)gcd(a,b)=gcd(b,a%b)gcd(a,b)=gcd(b,a\%b)证明我们的证明就是要证明上面两者相互能整除。 设gcd(a,b)=d'>gcd(a,b)=dgcd(a,b)原创 2018-02-04 13:43:10 · 561 阅读 · 0 评论 -
数论——整除
整除和同余是数论中的基础知识。 【flag】博主想要写一套数论整合博客,此博客是第一篇。声明本系列博客中提到的数都是整数,所用的字母除特别申明以外也都表示整数。整除设有a,ba,b两个数,且满足b≠0b≠0,如果存在一个数cc使得a=bca=bc,则我们称之为bb整除aa,记作b|ab|a,显然bb是aa的一个约数(因子),而称aa为bb的一个倍数。如果不存在上述的数cc,我原创 2017-12-04 19:40:43 · 1236 阅读 · 1 评论 -
数论——最大公约数和最小公倍数
声明部分代码源于《数学一本通》by东南大学出版社定义就是最大的那个公约数呗 我们来个稍微学术点的定义: 一般地,设a1,a2,…,aka_1,a_2,…,a_k是k个非零的整数,如果存在一个非零整数dd,使得d|a1,d|a2,…,d|akd|a_1,d|a_2,…,d|a_k,那么我们就说dd是a1,a2,…,aka_1,a_2,…,a_k的公约数。在公约数的集合里最大的,就是最大公约数。原创 2017-12-10 09:47:50 · 1076 阅读 · 0 评论 -
数论——同余
定义同余,就是两个整数a,ba,b对同一个整数pp进行模运算,所得的余数相同,那么说这两个整数a,ba,b关于pp同余。 我们能够发现,一旦两个整数a,ba,b关于pp同余,那么他俩的差就能够被pp整除。也就是a−b=m×k(k∈Z)a-b=m\times k(k∈Z)相关概念同余类如果在模nn意义下,a,ba,b同余,那么a,ba,b就属于同一个剩余类。 例如,奇数就是一原创 2017-12-12 19:00:10 · 3230 阅读 · 0 评论 -
数论——(扩展)欧几里得算法辨析
欧几里得算法欧几里得算法链接:传送门 欧几里得算法就是我们通常说的“辗转相除法”inline int gcd(int a,int b){ return b==0 ? gcd(y,x%y);}扩展欧几里得扩展欧几里得是用来求:已知(a,b)(a,b)(a,b)时,求解一组(p,q)(p,q)(p,q),使得p×a+q×b=gcd(a,b)p×a+q×b=gcd(...原创 2017-12-12 20:36:42 · 539 阅读 · 0 评论 -
数论——逆元
定义扩展欧几里得求逆元费马小定理求逆元线性递推算法对数级算法求逆元定义若a×x≡1(modb)a\times x\equiv 1\pmod b且a,ba,b互质,我们就称xx为aa的逆元,记作a−1a^{-1}。 下面给出逆元的几种求法。扩展欧几里得求逆元扩展欧几里得在这里。 因为a×x≡1(modb)a\times x\equiv 1\pmod b,所以a×x=b×y+1a\times原创 2017-12-13 18:53:37 · 680 阅读 · 0 评论 -
数论学习笔记 欧拉函数(一些性质和运用)+杜教筛
本文应sharpland男神要求转载一下这位大佬的欧拉函数博客!! 原文传送门定义在数论中,对正整数n,欧拉函数是小于等于n的数中与n互质的数的数目。并且用符号φ(n)\varphi(n) 表示一个整数的欧拉函数。例如φ(8)=4\varphi(8)=4。φ(1)=1\varphi(1)=1。一些欧拉函数的性质性质一对于一个质数n,φ(n)=n−1\varphi(n)=n-1。 证明:因为n是质转载 2017-12-03 16:47:37 · 514 阅读 · 0 评论 -
数论——中国剩余定理
含义中国剩余定理: 设m1,m2,…,mkm_1,m_2,…,m_k是kk个两两互质的正整数,Mi=Mmi(i=1,2,3,…,k),b1,b2,…,bkM_i=\frac M{m_i}(i=1,2,3,…,k),b_1,b_2,…,b_k为任意整数,则同余式组 x≡b1(modm1),…,x≡bk(modmk)x\equiv b_1\pmod {m_1},…,x\equiv b_k\pmod{原创 2017-12-13 21:03:17 · 335 阅读 · 0 评论 -
数论——斐波那契数列
定义斐波那契数,又称黄金分割数列。 递推公式是:F(n)=F(n−1)+F(n−2)F(n)=F(n-1)+F(n-2).推导通项公式设常数rr和ss,使得F(n)−r×F(n−1)=s×[F(n−1)−r×F(n−2)]F(n)-r\times F(n-1)=s\times [F(n-1)-r\times F(n-2 )] 所以r+s=1,−r×s=1r+s=1,-r\times s=1 在原创 2017-12-14 20:17:36 · 1392 阅读 · 0 评论 -
数论——斐波那契练习题一——斐波那契中的gcd
题面题目描述对于Fibonacci数列:1,1,2,3,5,8,13……大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? 输入输出格式 输入格式: 两个正整数n和m。(n,m<=10^9) 注意:数据很大输出格式:Fn和Fm的最大公约数。 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了。输入输出样例输入样例#1: 复制 4 7 输出样例原创 2017-12-14 20:21:51 · 1274 阅读 · 0 评论 -
数论——斐波那契练习题二——斐波那契变式
题面题目描述定义一个数列: f(0)=a,f(1)=b,f(n)=f(n−1)+f(n−2)f(0)=a,f(1)=b,f(n)=f(n−1)+f(n−2)f(0)=a,f(1)=b,f(n)=f(n−1)+f(n−2)f(0) = a, f(1) = b, f(n) = f(n - 1) + f(n - 2) f(0)=a,f(1)=b,f(n)=f(n−1)+f(n−2)f(0)=a,f(1原创 2017-12-14 20:40:51 · 791 阅读 · 0 评论 -
数论——素数
判定素数穷举法判定bool check(int k){ if(k==0||k==1)return false; for(int i=2;i<=sqrt(k);i++) if(k%i==0) return false; return true;}埃氏筛法void make_primetable(int n){ memset(is_prime,tru原创 2017-12-16 19:08:58 · 339 阅读 · 0 评论 -
数论——Baby Step Giant Step大步小步算法
bsgs算法Baby Step Giant Step算法,简称BSGS算法,也称为大步小步算法.解决对象离散对数:当x≡Gk(modm)x≡Gk(modm)x\equiv G^k\pmod m时,logG(x)≡k(modϕ(m))logG(x)≡k(modϕ(m))log_G(x)\equiv k\pmod{\phi(m)}。此处的logG(x)logG(x)log_G(x)是x...原创 2017-12-19 19:42:42 · 3778 阅读 · 0 评论 -
《算法导论》学习笔记——裴蜀等式及其扩展的证明
裴蜀等式及其扩展裴蜀等式是exgcdexgcd的骨髓,是建立在gcdgcd,它保证了exgcdexgcd的有解性。 裴蜀等式 存在让ax+by=gcd(a,b)ax+by=gcd(a,b)的x,yx,y; 扩展 gcd(a,b)gcd(a,b)是{ax+by:x,y∈Z}\{ax+by:x,y∈Z\}的最小正元素。证明先设ss是这个集合中最小正元素。 设q=⌊as⌋q=\lfloor \f原创 2017-12-28 08:02:46 · 769 阅读 · 0 评论