algorithm_数论
文章平均质量分 81
theArcticOcean
Website: https://www.weiy.city
Wechat Subscription Account: 胡桃小院
展开
-
完美数
完美数:除了它本身外的约数的和恰好等于它本身不完美数有两类:真因子的和大于它本身的数——盈数,小于的是亏数。ecnu 1197 完美数输入一个数字判断是盈数,亏数,还是完美数。利用因子和公式解决。(代码不知道正确不,进不了OJ)#include #include using namespace std;typedef long long LL;// rh原创 2016-02-06 10:39:18 · 1061 阅读 · 3 评论 -
欧拉函数
对正整数n,欧拉函数是小于n的数中与n互质的数的数目Euler函数表达通式:其中 为x的所有素因子,x是不为0的整数。euler(1)=1(唯一和1互质的数就是1本身)。 欧拉定理:对于互质的正整数a和n,有 (可用于求解逆元)若m,n互质, ——积性函数的性质实现代码:由表达式得到:int Euler(int n){ int ans=n,原创 2016-01-09 20:14:13 · 502 阅读 · 0 评论 -
法雷级数(数列)
关于法雷级数:法雷级数R.亨斯贝尔格著李忠翻译的《数学中的智巧》一书,介绍了法雷级数。这里每一行从0/1开始,以1/1结尾,其它数自左至右将所有的真分数(分子和分母互质)按增加顺序排列;第n行是由所有分母小于或等于n的真分数组成,我们称为n阶法雷级数。如下表:F1: 0/1 1/1F2: 0/1 1/2 1/1F3: 0/1 1/3 1/2 2/3 1/1F4: 0原创 2016-02-10 21:52:35 · 1439 阅读 · 0 评论 -
Pollard Rho 大数分解
核心思想:同时产生多个随机数让差值=goal的概率提高例子: 在1--1000中随机查找一个数字等于345, p=1/1000查找两个数字的差是345的概率则是 :于是通过这种方法也能查找N的因子,通过随机函数和随机数种子来产生一系列的随机数。随机函数为 的形式最开始的随机数通常用2,即 ;比如查找8051的因子: (97是8051的因子)然而出现了原创 2016-01-31 10:26:17 · 1045 阅读 · 0 评论 -
模拟问题之密码学
许多信息加密过程有着复杂的数学原理,但是一些简单的密码问题通过模拟即可解决。POJ 3749 破译密码http://poj.org/problem?id=3749模运算模拟即可#include #include #include using namespace std;char str[205],s[20];int main(){原创 2016-02-13 18:02:05 · 1005 阅读 · 0 评论 -
RSA加密
RSA算法基于一个事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。具体流程是:hdu 1211 RSAhttp://acm.hdu.edu.cn/showproblem.php?pid=1211按照题目所讲的步骤来就行。#include #include using namespace std;原创 2016-02-14 00:01:44 · 1018 阅读 · 0 评论 -
poj 2480 Longge's problem(积性函数 & 欧拉函数)
http://poj.org/problem?id=2480大意:求解 ∑gcd(i, N) 1对于最大公约数,它有这样的性质,gcd(n,m1*m2)=gcd(nm1)*gcd(n,m2) 比如gcd(6,12)=gcd(6,3)*gcd(6,4).我们设f(N)=∑gcd(i, N),那么它也应该是一个积性函数。(积性函数的积是积性函数,积性函数的和是积性函数)设 其中原创 2016-01-18 22:26:11 · 960 阅读 · 0 评论 -
积性函数
积性函数:对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b)若对于某积性函数 f(n) ,就算a, b不互质,也有f(ab)=f(a)f(b),则称它为完全积性的如果f是积性函数,那么其和是积性函数,其积也是积性函数设有 , 那么其因子个数是 ,其因子和是 此外,欧拉函数,最大公约数gcd(a,b)=gcd(a1,b)*gcd原创 2016-02-03 10:21:47 · 886 阅读 · 0 评论 -
重拾拓展欧几里得 & 简单不定方程
过一段时间不用拓展欧几里得就把代码忘了,这是没有深入理解的恶果啊。写下一文,回忆回忆基础而重要的拓展欧几里得拓展欧几里得函数 ex_gcd() 可以用于求解逆元,不定方程,同余式(随便也能把模与被模数的最大公约数求出来)。贴上代码:void ex_gcd(LL a,LL b,LL &d,LL &x,LL &y){ if(b==0){ d=a; x=1;原创 2016-01-09 20:32:00 · 737 阅读 · 0 评论 -
Miller_Rabin · 大数
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1186给出一个很大的数字N,2分析:数字很大,使用java的BigInteger解决。在这个过程中犯了许多低级错误。哎,我的java基础啊。相关知识点记录:==比较的是对象的地址,也就是是否是同一个对象;equal比较的是对象的值。Mat原创 2016-01-26 10:17:21 · 694 阅读 · 0 评论 -
Miller-Rabin 素数测试
相关定理——费马小定理:假设P是素数,且(a,p)=1,那么由此我们知道这样一个事实: p是素数,(a,p)=1 -> ; -> p不是素数定义:a是正整数,p是合数,且, 那么称p是以a为基的伪素数。Miller-Rabin算法原理: 取多个a(底)进行试验,次数越多,p是素数的概率越大。相关例题:POJ 3641 Pseudoprime numbersht原创 2016-01-25 18:42:56 · 632 阅读 · 0 评论 -
hdu 1021 Fibonacci Again(矩阵连乘 || 循环节)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1021DescriptionThere are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2). InputInput c原创 2015-08-13 16:25:20 · 715 阅读 · 0 评论 -
UVA 10820 Send a Table(欧拉函数)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1761大意:输入两个整数(1分析,函数的性质告诉我们它和神奇的GCD很像,问题就是求解1—n中有多少对数字互质。欧拉函数值得拥有.#include #include using name原创 2016-01-20 08:44:56 · 437 阅读 · 0 评论 -
uva 10791 Minimum Sum LCM(算术基本定理)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1732大意:给出一个数字n,LCM(q1,q2,……,qk)=n,求解q1,a2……qk的最小和。分析:刚开始读错题了(又读错T_T),是一系列的数字之和。由算术基本定理,,同时,发现如果,是最原创 2016-01-20 09:29:47 · 581 阅读 · 0 评论 -
hdu 1788 Chinese remainder theorem again
Problem Description我知道部分同学最近在看中国剩余定理,就这个定理本身,还是比较简单的:假设m1,m2,…,mk两两互素,则下面同余方程组:x≡a1(mod m1)x≡a2(mod m2)…x≡ak(mod mk)在0记Mi=M/mi(1ei≡0(mod mj),j!=iei≡1(mod mj),j=i很显然,e1a1+e2a2+…+e原创 2015-12-03 11:31:16 · 687 阅读 · 0 评论 -
快速幂为什么这么快
在解决一些数学问题时经常用到快速幂算法,自己有过这样的疑问,快速幂为什么这么快?现在干脆把它写下来。代码:typedef long long LL;LL power(int a,int p){ LL ans=1,temp=a; while(p){ if(p&1) ans=ans*temp; temp=temp*temp; p>>=1; } return ans原创 2015-12-21 23:26:14 · 1896 阅读 · 0 评论 -
codeforces 300E. Empire Strikes Back (math+midfind)
链接: http://codeforces.com/problemset/problem/300/EIn a far away galaxy there is war again. The treacherous Republic made k precision strikes of power ai on the Empire possessions. To cope原创 2015-12-22 18:12:21 · 1129 阅读 · 0 评论 -
poj 1091 跳蚤(最大公约数原理+容斥原理)
题目:http://poj.org/problem?id=1091跳蚤Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 9058 Accepted: 2709DescriptionZ城市居住着很多只跳蚤。在Z城市周六生活频道有一个娱乐节目。一原创 2015-08-29 20:14:25 · 1141 阅读 · 0 评论 -
lightOJ 1278 Sum of Consecutive Integers(数论,数学推导)
题目:给出一个数n,求出有多少种连续整数和等于n(连续整数至少两个)。“For example, N = 15 has three solutions, (1+2+3+4+5), (4+5+6), (7+8).”分析:n=a+(a+1)+(a+2)+(a+3)+……+(a+k-1) ==> n=(2a+k-1)/2*k ==>2n/k-k=2a-1 ==>2n/k-k是一个奇数。如果k是一个偶原创 2015-07-02 15:20:12 · 1145 阅读 · 2 评论 -
poj 3070 Fibonacci(简单矩阵连乘)
题目:http://poj.org/problem?id=3070FibonacciTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 10994 Accepted: 7823DescriptionIn the Fibonacci inte原创 2015-08-14 12:25:26 · 579 阅读 · 0 评论 -
hdu 3117 Fibonacci Numbers(数学推导+矩阵连乘)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3117E - Fibonacci NumbersTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionTh原创 2015-08-13 19:33:41 · 790 阅读 · 0 评论 -
毕达哥拉斯三元组
毕达哥拉斯三元组:x^2+y^2=z^2如果有(x,y,z)=1,那么这个这个毕达哥拉斯三元组称为原本的。原本的毕达哥拉斯三元组满足:x=m^2-n^2y=2mnz=m^2+n^2 (m,n互素,且m,n奇偶性不同)fzu 1669 Right-angled Trianglehttp://acm.fzu.edu.cn/problem.php?pid=1669原创 2016-02-17 10:12:56 · 2917 阅读 · 0 评论 -
佩尔方程
佩尔方程(Pell Equation)为:其中d不为完全平方数且d>1.如果已知它的最小特解:x1,y1那么存在迭代公式:通过简单的证明:由此得到矩阵递推式:暴力法寻找最小特解:typedef long long LL;void search(LL &x,LL &y,LL d){ y=1; while(1>0){ x=(原创 2016-02-17 10:31:13 · 1044 阅读 · 0 评论 -
Uva 11395 - Sigma Function (算术基本定理)
从单个数字看,它的因子和与素因子的指数相关。由奇数+奇数=奇数奇数*偶数=偶数我们得到结论,如果因子和是偶数,那么至少有一个 是奇数. 即对于数字N的判断:#include #include #include using namespace std;typedef long long LL;const int N=1e6+10;bool vis[N原创 2016-03-18 21:43:59 · 790 阅读 · 0 评论 -
三个特殊的同余式
欧拉定理:如果a、p是正整数,且互质,那么有证明:设和P互质且小于P的正整数集合是进一步: gcd(q_ia,p)=1" alt="">所以 在集合S内。那么, 有: 而当P是素数的时候,欧拉定理就是费马小定理:费马小定理除了能用于求解逆元之外,还有一个强大的功能:在满足条件下,降幂。设正整数那么:一个例子:POJ 1845原创 2016-02-02 21:40:11 · 774 阅读 · 0 评论 -
51nod 1225 余数之和
http://www.51nod.com/onlineJudge/questionCode.html#problemId=1225¬iceId=36953F(n) = (n % 1) + (n % 2) + (n % 3) + ...... (n % n)。其中%表示Mod,也就是余数。 例如F(6) = 6 % 1 + 6 % 2 + 6 % 3 + 6 % 4 +原创 2016-03-19 20:29:44 · 656 阅读 · 0 评论 -
lightOJ 1197 Help Hanzo (区间找素数)
http://lightoj.com/volume_showproblem.php?problem=1197大意:区间找素数。区间a and b (1 ≤ a ≤ b 31, b - a ≤ 100000).分析:发现一个特点,a和b的数字都特别大,但是b-a倒是挺小的,从这里做文章。找出1——1e6之间的素数,对a——b之间素数筛选,结果记录在一个长度是1e5原创 2016-03-20 19:37:38 · 662 阅读 · 0 评论 -
hdu 5317 RGCDQ (dp+筛法)
http://acm.hdu.edu.cn/showproblem.php?pid=5317大意:求出 分析:直接分解再而重循环肯定超时。需要从素因子的个数入手,换个角度思考。 在1——1e6的范围内最多有7个素数相乘。1 2 3 4 5 6 7中有非素数1 4 6。设素数个数是i的数字的个数是sum[i]那么sum[4]的个数得加到sum[2]与sum[1]上,sum[6]原创 2016-03-22 19:13:56 · 587 阅读 · 0 评论 -
hdu 4704 Sum (组合+欧拉定理)
http://acm.hdu.edu.cn/showproblem.php?pid=4704大意:给定N,设S(k)是由k个数字相加得到N的方案数,求解分析:本题中两个数字的排列,如1、2 应该有2种——1、2; 2、1(一开始以为它们相同,算作一种,怎么也算不出来)如此以来,容易分析,将数字n看作1+1+1……+1(n个)那么 (组合思维,隔板看待)于是,答案就是原创 2016-03-22 19:32:37 · 740 阅读 · 0 评论 -
和GCD相关的“个数”及“求和”问题——hdu 2588、nyist 1007
hdu 2588 GCDhttp://acm.hdu.edu.cn/showproblem.php?pid=2588大意:Given integers N and M, how many integer X satisfies 1=M.分析:已知(a,b)=k --> (a/k, b/k)=1所以,问题即是求解有多少个x,满足(n/k, x/k)=1 且k>=原创 2016-03-12 09:49:35 · 643 阅读 · 0 评论 -
那些可以整除的数字
定理1:如果 且正整数j, 能被整除,那么 能够被 整除 。比如:我们知道12564能被2整除,因为 且4%2=0。进一步,,12564能被4整除,因为64%4=0。而564%8!=0,所以12564%8!=0同样,我们可以解释某些数字为什么能被5整数,能被整除定理2: 如果 , 能被d,那么该数字就能被d整除比如:我们知道 12312能被3整除,将数字12原创 2016-01-03 19:36:33 · 2080 阅读 · 0 评论 -
小球反弹问题
此题没有AC,下面代码没有参考意义,仅供自己学习记录。(郁闷)HDU 3834 Where am Ihttp://acm.hdu.edu.cn/showproblem.php?pid=3834大意:一个小球在大环内运动,求解经过时间T后的位置。(会给出圆和球的参数,以及初始运动向量,整个过程没有能量损耗)分析:求解线段v1v2和u1u2的交点:面积之比等原创 2016-03-13 20:32:20 · 2037 阅读 · 0 评论 -
快速傅里叶变换
快速傅里叶变换不能三言两语能解释清楚,自己看了一些资料,仍不敢说完全掌握了。快速傅里叶变换(FFT)的作用及解释:http://blog.jobbole.com/70549/编程实现:http://wenku.baidu.com/link?url=Ntpg6kmz98PiLYCo4ymYCNDEQ2iziPIaq4sCqhbxLuZ16ONotUgwLvJ0q8AG-mpTlp原创 2016-02-19 22:26:57 · 1355 阅读 · 0 评论 -
hdu 1568 Fibonacci(Fibonacci通项公式)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1568Description2007年到来了。经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列 (f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部给背了下来。 接下来,CodeStar决原创 2015-08-13 17:20:00 · 901 阅读 · 0 评论 -
hdu 2094 产生冠军(STL map || 拓扑 || STL set)
题目:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23626Description有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。 球赛的规则如下: 如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。 如果A打败了B,B又打败了C,而且,C又原创 2015-08-18 11:02:06 · 550 阅读 · 0 评论 -
同余问题(2)逆元,孙子定理
定理:如果a,b和c是正整数,且那么有推导:因为 ,所以,进一步推出结论:如果a,b,c 和m是整数,且m>0,d=(c,m),,有推导:原创 2015-10-27 23:25:07 · 2146 阅读 · 0 评论 -
lightOJ 1236 Pairs Forming LCM(算术基本定理)
lightOJ 1236 Pairs Forming LCM大意:求解N内的lcm(i,j)=N的对数(i,j)。 (a,b)和(b,a)算一对分析:做此题时,注意存储素因子的数组长度设置问题。我用1e7的int数组不断MLE,换成vector才解决了内存问题。(用C写,居然判我bool型错误,我不知所云。一共交了差不多20遍。)#include #include原创 2016-03-16 21:28:45 · 673 阅读 · 0 评论 -
高斯消元法
线性代数里的高斯消元法在许多的程序问题中也常用到,在计算机里不能列出方程组,所以用增广矩阵来计算解集。比如这样的方程组:对应的增广矩阵:高斯消元的模板:#include#include#include#include#includeusing namespace std;const int MAXN=50;int a[MAXN][MAXN];//增广矩阵int原创 2015-07-29 15:42:43 · 1273 阅读 · 0 评论 -
高斯消元练习
POJ 1222 EXTENDED LIGHTS OUThttp://poj.org/problem?id=1222开关灯问题:每一个开关对四周5点领域都有影响,状态变化:如果灯是亮着的,熄灭;如果灯是熄灭的,亮起。把每一个开关的开闭看做一个未知数x,影响领域看做系数a,每一盏灯现在的状态是y,问题就是 . 等式解释:如果灯是关着的,那么必须等于0,维持状态;如果灯是开着的,必须等原创 2016-02-18 14:52:39 · 526 阅读 · 0 评论 -
费马数
形如的数字被称之为费马数,费马数有可能是素数,有可能不是,费马数的素因子都具备这样的形式: 对于所有的非负整数n,有这样的定理:推导:应用数学归纳法,对于n=1,有 现在做一个假设: 有: 由费马数的特殊的表达式可以猜想任意两个不同的费马数一定是互质的。事实上这也是费马数的一个性质,由前面的定理可以知道,,从中随便拿一个数字来和研究,设, 那么有,所以, 因为费马数是奇原创 2015-12-03 10:33:49 · 3644 阅读 · 0 评论