![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM-数论
tick_tokc97
这个作者很懒,什么都没留下…
展开
-
LightOJ 1197(大数范围筛区间内素数个数)
对于大范围内的素数个数,可以通过模拟筛法筛区间内素数个数,先打表,再根据表进行筛素数操作原创 2017-05-02 21:24:24 · 656 阅读 · 0 评论 -
数论常用内容——矩阵快速幂
在数论题以及一些非数论题中,经常出现递推的情况,如果找不到规律,强行迭代递推的话不是一个明智的选择,今天我就来给大家介绍一个适用于这种情形的方法——矩阵快速幂矩阵快速幂是如何优化递推的呢?首先,需要先构造合适的初始状态(第一个矩阵)然后,利用此矩阵和矩阵乘法的性质,使用快速幂的手段求出之后的状态构造矩阵可以根据矩阵乘法的实现特点来构造,利用合适的性质可以简化运算如何构造矩阵呢?原创 2017-05-04 12:31:20 · 407 阅读 · 0 评论 -
数论常用内容——素数
在做数论题过程中,素数出现的频率很高,在基础题和中档题甚至很多高难度的题里面都很常见,这篇博客就来对素数及其使用做一个小小的总结原创 2017-05-04 16:18:33 · 938 阅读 · 0 评论 -
数论常用内容——中国剩余定理
中国剩余定理中国剩余定理是中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称孙子定理。用现代数学的语言来说明的话,中国剩余定理给出了下图所示的一元线性同余方程组有解的判定条件,并用构造法给出了在有解情况下解的具体形式:原创 2017-05-07 12:01:25 · 15265 阅读 · 2 评论 -
数论常用内容——数根
对于数根可能接触的不多,但是我觉得这里还是应该做一下简单的总结和介绍数根数根(又称数字根Digital root)是自然数的一种性质,每个自然数都有一个数根。数根是将一正整数的各个位数相加(即横向相加),若加完后的值大于等于10的话,则继续将各位数进行横向相加直到其值小于十为止,最后得到的数字就是该数的数根原创 2017-05-06 22:21:35 · 1160 阅读 · 0 评论 -
数论常用内容——高斯消元
高斯消元法数学上,高斯消元法,是线性代数中的一个算法,可用来为线性方程组求解高斯消元法求解线性方程组时,首先需要根据方程,列出增广矩阵。然后再利用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解高斯消元法的应用1、找出可逆矩阵的逆矩阵设A为一个N*N的可逆矩阵,将一个N*N单位矩阵I放在A的右边,形成一个N*2N的分块矩阵 B = [A,I] 。经过高斯消元法的计算程序后,矩阵B的左边原来原创 2017-05-06 22:11:42 · 544 阅读 · 0 评论 -
数论常用内容——欧拉函数
今天博主来稍微介绍一点欧拉函数的知识欧拉函数在数论中,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(记作φ(n),其中φ(1)=1)注意,欧拉函数是一种积性函数,它并不是完全积性的,它只满足:对于正整数n的一个算术函数 f(n),且f(1)=1,并当a,b互质时f(ab)=f(a)f(b)原创 2017-05-06 21:46:39 · 1867 阅读 · 0 评论 -
数论常用内容——反素数
提到反素数,大家可能比较陌生,这里博主我对反素数的了解也不是很深刻,希望能借此机会来总结一下并和大家交流概念对于任何正整数n,其约数个数为f(n),如果某个正整数n满足:对任意正整数i(0<i<n),都有f(i)<f(n),那么称n为反素数。性质性质1、一个反素数的所有质因子必然是从2开始的连续若干个质数,因为反素数是保证约数个数为x的这个数n尽量小性质2、如果n=2^t1*3^t2*5^t3*…原创 2017-05-04 17:10:54 · 717 阅读 · 0 评论 -
数论常用内容——欧几里得算法与扩展欧几里得算法
欧几里得算法欧几里得算法有一个为更多人所知的名字叫“辗转相除法”,它是用来求解两个数的最大公约数的算法其计算原理依赖于下面的定理:定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(greatest common divisor)缩写为gcd。即:gcd(a,b) = gcd(b,a mod b) (不妨设a>b 且r=a mod b ,r不为原创 2017-05-04 09:19:37 · 770 阅读 · 0 评论 -
数论常用内容——整除
说到整除,我们应该先来明确一下整除的定义:若整数a除以非零整数b,商为整数,且余数为零, 我们就说a能被b整除(或说b能整除a),即b∣a,读作“b整除a”或“a能被b整除”。a叫做b的倍数,b叫做a的约数(或因数)。原创 2017-05-04 08:59:40 · 3743 阅读 · 0 评论 -
数论常用内容——阶乘
在竞赛中,阶乘也被经常提及,而且总是不那么好处理,下面我就给大家介绍一点关于阶乘常用的内容原创 2017-05-04 11:03:42 · 1783 阅读 · 0 评论 -
POJ 2417 Discrete Logging (求解模方程a^x≡b(mod n))
本题题意很明确,要求解一个解模方程a^x≡b(mod n),这里博主采用了大步小步算法,也就是B-S-G-S算法代码如下原创 2017-05-04 10:42:48 · 431 阅读 · 0 评论 -
算数基本定理——素因数分解序列生成
纯粹的质因数分解生成示例程序,之前某次比赛的时候的代码,这里给大家介绍一下算数基本定理吧算术基本定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积原创 2017-05-03 11:33:36 · 684 阅读 · 0 评论 -
LightOJ 1234(调和级数、有通项公式的发散数列求和)
调和级数求和(1/1+1/2+1/3+……..+1/n)可用于大数有通项公式的求和计算利用分组来平衡内存和时间原创 2017-05-02 21:25:56 · 1901 阅读 · 0 评论 -
LightOJ 1282(求高次幂的前三位和后三位)
求最后的三位,可以通过直接取余得到;求前三位则需要一些数学知识对于给定的一个数n,它可以写成10^a,其中这个a为浮点数,则n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中x,y分别是a*k的整数部分和小数部分,对于t=n^k这个数,它的位数由(10^x)决定,它的位数上的值则有(10^y)决定因此我们要求t的前三位,只需要将10^y求出,在乘以100,就得到了它的前三位。原创 2017-05-02 21:27:36 · 510 阅读 · 0 评论 -
HDU 2256 Problem of Precision(矩阵快速幂)
题面为(sqrt(2)+sqrt(3))^2n,化简后为(5+2sqrt(6))^n由二项式定理,(5+2sqrt(6))^n=Xn+Ynsqrt(6)设F(n)=Xn+Ynsqrt(6),则F(n)=(5+2sqrt(6))×F(n-1)=(5+2sqrt(6))×(Xn-1+Yn-1sqrt(6))=(5Xn-1+12Yn-1)+(2Xn-1+5Yn-1)sqrt(6)至此,递推式构造完成原创 2017-05-02 12:59:00 · 283 阅读 · 0 评论 -
LightOJ 1288(01高斯消元、矩阵的秩)
给你n个数 选出一些数 他们的乘积是完全平方数 求有多少种方案每个数分解因子 每隔数可以选也可以不选 0 1表示 然后设有m种素数因子 选出的数组成的各个因子的数量必须是偶数组成一个m行和n列的矩阵 每一行代表每一种因子的系数 解出自由元的数量原创 2017-05-03 10:02:32 · 508 阅读 · 0 评论 -
POJ 2891 Strange Way to Express Integers(非互质中国剩余定理)
为了解决非互质中国剩余定理问题,需要合并方程,合并之后再按照互质的情况进行处理即可原创 2017-05-03 10:30:18 · 197 阅读 · 0 评论 -
POJ 2891 Strange Way to Express Integers(同余方程)
本题除了前面我发的用非互质中国剩余定理来解决,还可以使用同余方程的知识来解决,具体思路如下:求这个东西 X mod m1=r1 X mod m2=r2 … … … X mod mn=rn首先,我们看两个式子的情况 X mod m1=r1……………………………………………………………(1) X mod m2=r2……………………………………………………………(2) 则有 X=m1原创 2017-05-03 10:39:37 · 216 阅读 · 0 评论 -
POJ 3070 Fibonacci(矩阵快速幂)
本题是一道矩阵快速幂的入门题,提示里面已经给出了矩阵的构造,所以直接快速幂求解即可原创 2017-05-03 10:42:19 · 206 阅读 · 0 评论 -
POJ 3233 Matrix Power Series(矩阵等比数列求和)
题意就是一个等比数列求和的意思,只不过每一项都是矩阵这里需要进行一下转移矩阵的构造,形成一个递推累加的效果:设 B = (A,I;0,I)则B^(k + 1) = (A^(k + 1),I + A + A^2 + A^3 + … + A^k;0,I)原题可解,代码如下原创 2017-05-03 10:48:11 · 622 阅读 · 0 评论 -
UVA 11426 GCD - Extreme (II)(欧几里得定理+欧拉函数)
解这道题,需要以下几步:1.建立递推关系,s(n)=s(n-1)+gcd(1,n)+gcd(2,n)+……+gcd(n-1,n);2.设f(n)=gcd(1,n)+gcd(2,n)+……+gcd(n-1,n)。gcd(x,n)=i是n的约数(x<n),按照这个约数进行分类。设满足gcd(x,n)=i的有g(n,i)个,则有f(n)=sum(i*g(n,i))。而gcd(x,n)=i等价于gcd(x/原创 2017-05-03 11:07:36 · 514 阅读 · 0 评论 -
矩阵快速幂的应用——优化递推过程
矩阵快速幂可用来优化递推矩阵快速幂的实现及一些详细介绍可以参考我的另一篇文章: 数论常用内容——矩阵快速幂首先,需要先构造合适的初始状态(第一个矩阵)然后,利用此矩阵和矩阵乘法的性质,使用快速幂的手段求出之后的状态构造矩阵可以根据矩阵乘法的实现特点来构造,利用合适的性质可以简化运算例如:给出矩阵A,求S = A + A2 + A3 + … + Ak分析:把问题转化以加速,令B = A I原创 2017-05-03 11:10:29 · 637 阅读 · 0 评论