定理总结

余数:
1>同余:若a , b除以c的余数相等,则a与b相对于除数c是同余的,即a≡ b(mod c)!
2>同余的两个数的差能整除除数:如 10 % 3 = 1, 7 % 3 = 1,10≡ 7 (mod 3)则(10 - 7 )% 3 = 0.
3>余数可加性(可减性同):两个数对于某个除数的余数和对此除数的余数等于两个数的和对此除数的余数!如 (11 % 3 + 8 % 3 )% 3= (11 + 8) % 3
4>两个数对某个除数的余的乘积对此除数的余数等于两个数的乘积对此除数的乘积对此!: 如 [ (11%3 )* (8%3 ) ] % 3 = (11 * 8)%3
5>余数乘方性: 如果a与b除以m的余数相同,那么an与bn除以m的余数也相同,但不一定等于原余数.
例如:3,7除以4的余数都是3,可以算得32和72除以4的余数都等于1,它们的余数相等但不一定等于3.

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

模乘法得逆:
对于两个整数a,b,a/b是整数,且a和b除以mod得余数分别为aa,bb,
则a/b除以mod得余数为(aa*bb^(-1))%mod,其中b^(-1)是b的逆.
(当(a*b)%mod=1是,我们称a和b互为乘法的逆,即a=b^(-1),b=a^(-1))
相关代码:

void gcd(LL a,LL b,LL &d,LL &x,LL &y)//拓展欧几里得定理,求ax+by=gcd(a,b)的一组解
{
if(!b){d=a;x=1;y=0;}
else{gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
LL inv(LL a,LL n)//求得a在模n条件下的逆
{
LL d,x,y;
gcd(a,n,d,x,y);
return d==1?(x+n)%n:-1;
}

推论1:mod为质数,由费马小定理得b^(mod-1)%mod=1-->(b*b^(mod-2))%mod=-1,所以b的逆=b^(mod-2).
对于整数a,b(b<mod),且a/b是整数,则a/b除以mod得余数是(a%mod*b^(-1))%mod-->(a%mod*b^(mod-2))%mod.可用于求分数形式整数的模

SG定理
组合游戏:一个状态是必败状态当且仅当它的所有后继都是必败状态;一个状态是必胜条件当且仅当它至少有一个后继是必败状态
组合游戏的和。假设有k个组合游戏G1,G2,...Gk,可以定义一个新游戏,在每个回合中,
当前游戏可以任选一个子游戏Gi进行一次合法操作,而让其他游戏的局面保持不变,不鞥操作的游戏者输。
这个新游戏称为G1,G2,...,G3的和
SG函数和SG定理。对于任意状态x,定义SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S)表示不在S内的最小非负
整数。SG(x)当且仅当x为必败状态.游戏和的SG函数SG函数等于各子游戏SG函数的Nim和。
Bouton定理:状态(x1,x2,x3)为必败状态当且仅当x1^x2^x3=0,称为Nim和。可看做SG定理在Nim游戏中的运用

pick定理
给定一个顶点均为整点(即坐标为整数的点)的简单多边形,其面积A和内部格点数目I与边上格点数目B的关系式:A=I+B/2-1.

Lucas定理
A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。
则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0]) ?mod p同余
即:Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)?

欧拉定理
a^(phi(n))≡1(mod n) (a,n互质), phi(n)是欧拉函数,表示不超过n的且与n互质的数的个数。

五边形数定理
可用于生成函数(母函数):
(1-x-x^2+x^5+x^7-x^12...)(1+p(1)x+p(2)x^2+p(3)x^3)=1;(整数划分的生成函数为1/∏(1-x^i))
得到p(n)=p(n-1)+p(n-2)-p(n-5)-p(n-7)+...

柯尼希定理(最小顶点覆盖,二分图匹配,匈牙利算法)
图G的顶点覆盖是一个顶点集合V,使得G中的每一条边都接触V中的至少一个顶点。我们称集合V覆盖了G的边。最小顶点覆盖是用最少的顶点来覆盖所有的边。顶点覆盖数是最小顶点覆盖的大小。
二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i ∈A,j ∈ B),则称图G为一个二分图。
无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数。
匈牙利算法:它是一种用增广路径求二分图最大匹配的算法。

int find(int cur)  //判断增广路是否存在
{
    int i, k;
    for(i = 0; i < map[cur].size(); i++)
    {
        k = map[cur][i];
        if(!flag[k])
        {
            flag[k] = true;
            if(pre[k] == -1 || find(pre[k]))
            {
                pre[k] = cur;
                return 1;
            }
        }
    }
    return 0;
}
for(i = 0; i < n; i++)
        {
            memset(flag, false, sizeof(flag));
            sum += find(i);
        } 

sum就是最大匹配值。
柯尼希定理是这样一个定理:二分图最小点覆盖的点数=最大匹配数。

poj 3041;poj1422,2239,1422,1325,1719,2594,2195,2446,1904,3342,3216,3020

一个PXP的有向图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,
且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,
那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每条路径就是一个弱连通子集

最小路径覆盖的边数=顶点数n-最大匹配数

最大独立集:在二分图G中,点集合M,M中的各个点都不相连,则称M为G的独立集。M中点个数最多的称为最大独立集

最大独立集=最小路径覆盖=n-最大匹配数

例:(1,3),(3,4),(2,3),对于无向图,可以得到两种二分图:

1.(1-3,4-3,2-3),求得最大匹配为m=1,即为最小顶点覆盖数,最大独立集=n-m

2.(1-3,3-1,4-3,3-4,2-3,3-2),求得最大匹配m=2,即为最小顶点覆盖数*2,最大独立集=n-m/2

有向图:

(1-3,2-3,3-4),最大匹配为m=2,最小路径覆盖=n-m;

皮克定理:
皮克定理是一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为2S=2a+b-2,
其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。

无名定理(分数小数互化,判断是否是有限小数或无限循环小数):一个分数如果它的分母是10^n(n是含零自然数),就可以直接写成整数或有限小数;
而一个有限小数化成分数,第一步就是将其分母写成10^n。如果一个分数无法将其分母写成10^n,那就无法写出其有限小数的形式。
这样,当一个分数经过约分,化成最简分数后,如果分母质因数分解式是:2^m*5^n(m、n是含零自然数)的形式,当m=n时,
那分母就是10^n了;当m>n时,分子分母同乘以5^(m-n),分母就是10^m了;当m<n时,分子分母同乘以2^(n-m),分母就是10^n了。
反之,当一个最简分数的分母,质因数分解后含有2和5以外的素数,这样分母就无法化成10^n了。 所以,要能看出一个分数是有限小数还是无限循环小数,
只要将其化成最简分数后,对分母进行质因数分解即可判断。如果质因数分解式中仅仅含有素数2或5,则将其化成小数,就是有限小数。如果质因数分解式中,
还含有2和5以外的其他素数,则将其化成小数,就是无限循环小数。

齐肯多夫定理:任何正整数都可以表示成若干个不连续的的斐波那契数(不包括第一个斐波那契数)之和。
这种和式称为齐肯多夫表述法。对于任何正整数,其齐肯多夫表述法都可以由贪心算法(即每次选出最大可能的斐波那契数)得到。

中国剩余定理(CRTCRT)
x=a1modm1x=a1modm1
x=a2modm2x=a2modm2

x=anmodmnx=anmodmn
假设整数m1,m2,...,mnm1,m2,...,mn互质,则对于任意a1,a2,...,ana1,a2,...,an,方程组有解
设M=m1?m2?...?mn,Mi=M/mi设M=m1?m2?...?mn,Mi=M/mi
设Ti=M?1imodmi设Ti=Mi?1modmi
则 x=a1t1M1+a2t2M2+...antnMn+kM

原文地址:https://www.cnblogs.com/Lemon1234/p/11625098.html

时间: 2024-08-28 09:00:15

定理总结的相关文章

NKOJ1236 a^b (数论定理的应用)

          a^b 对于任意两个正整数a,b(0<=a,b<10000)计算a b各位数字的和的各位数字的和的各位数字的和的各位数字的和. Input 输入有多组数据,每组只有一行,包含两个正整数a,b.最后一组a=0,b=0表示输入结束,不需要处理. Output 对于每组输入数据,输出ab各位数字的和的各位数字的和的各位数字的和的各位数字的和. Sample Input 2 3 5 7 0 0 Sample Output 8 5 思路: 数论定理:任何数除以9的余数等于各位数的和除

卢卡斯定理的模板以及应用

定义: Lucas定理是用来求 C(n,m) MOD p,p为素数的值.Lucas定理:我们令n=sp+q,m=tp+r.(q,r≤p) 那么:(在编程时你只要继续对 调用 Lucas 定理即可.代码可以递归的去完成这个过程,其中递归终点为 t=0 :时间复杂度 O(logp(n)?p):) 主要解决当 n,m 比较大的时候,而 p 比较小的时候 <1e6 ,那么我们就可以借助 卢卡斯定理来解决这个问题: 模板: #include <iostream> #include <cstd

计算理论中的莱斯定理(Rice&#39;s Theorem)——证明与应用

我们给出一个在探讨不可判定性时非常有用的结论--莱斯定理(Rice's Theorem).首先,我们来看前面讨论过的几个不可判定的例子: 这些都是由图灵机识别之语言的性质.而莱斯定理告诉我们,任何由图灵机识别之语言的非平凡性质(nontrivial property)都是不可判定的. 最后通过几个例子来探讨一下莱斯定理的应用.来看看下面这个语言能否使用莱斯定理来确定其可判定性. {<M> | M是一个TM,且L(M)可由一些拥有偶数个状态的图灵机识别} 首先来确定这是否是一个语言属性,显然是的

谈谈对CAP定理的理解

谈谈对CAP定理的理解 CAP定理的常规解释是任何分布式系统只能在一致性(Consitency),可用性(Availability)和分区容忍性(Partition Tolerance)中三选二.这个解释很让人费解,笔者在看了一些文章后谈谈我对它的理解,还请斧正. 从问题出发 假设我们用一台服务器A对外提供存储服务,为了避免这台服务器宕机导致服务不可用,我们又在另外一台服务器B上运行了同样的存储服务.每次用户在往服务器A写入数据的时候,A都往服务器B上写一份,然后再返回客户端.一切都运行得很好,

POJ 2769 Reduced ID Numbers 同余定理

Reduced ID Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8989 Accepted: 3610 Description T. Chur teaches various groups of students at university U. Every U-student has a unique Student Identification Number (SIN). A SIN s is an

棋盘的多米诺覆盖:Dimer Lattice Model,Pfaff 多项式,Kasteleyn 定理

这次来介绍计数组合学里面一个经典的问题:Dimer Lattice Model.问题是这样的:一个有 64 个方格的国际象棋棋盘,有多少种不同的多米诺骨牌覆盖?这里的覆盖是指不重复不遗漏地盖住整个棋盘. 下图是一种可能的覆盖方式(图片来自 Wiki 百科): 这个问题的答案是 12988816,非常大的一个数字,绝对不是一个一个数出来的.1961 年德国物理学家 Kasteleyn 借助于线性代数中的一个结论首先解决了这个问题,我们接下来就介绍他的方法. ~~~~~~~~~~~~~~~~~~~~

POJ--1465--Multiple【BFS+同余定理】

链接:http://poj.org/problem?id=1465 题意:给一个数字n,和m个数字,找一个由这些数字组成的最小的n的倍数,如果不存在输出0. 思路:这题怎么想都想不到bfs上去,看了别人的解题报告,其实是用bfs来枚举,但是加了一个牛逼的剪枝:同余.即如果A%X==B%X,则(A*10+K)%X==(B*10+K)%X. 我们枚举m中每一个数字做这个K,实际上是枚举了一个数,B*10是之前枚举的数字,如果这个数%X得到的值之前已经得到过,则没必要再往下计算,因为根据同余定理剩下的

《A First Course in Abstract Algebra with Applications》-chaper1-数论-棣莫弗定理

定理1.24 (棣莫弗定理) 对每个实数x和每个正整数n有 基于棣莫弗定理的推论如下:

BZOJ 2299 向量(裴蜀定理)

题意:给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量(x,y). 实际上前四个向量能拼出(ma,nb)(m%2=n%2).后四个向量拼出(xb,ya)(x%2=y%2). 这样可以枚举这四个未知数在模二意义下的解.这两个向量相加为(ma+xb,nb+ya). 对于ma+xb=X.根据系数的奇偶性,如果有系数为奇数,可使得等式两边都减去一个数使得系数都为偶

矩阵树定理速证

凯莱公式: spanning_trees_num( G ) = spanning_trees_num( G - e ) + spanning_trees_num( G · e ) 矩阵树定理: G 相应的拉普拉斯矩阵(度矩阵 - 邻接矩阵)L( G )   删除随意一行一列得到的行列式的值det( L*( G ) ) 即生成树的个数,即spanning_trees_num( G ) = det( L*( G ) ) 证: 归纳如果 spanning_trees_num( G - e ) = de