摘要: 一、定义:由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数 aij为(i,j)元的矩阵可记为(aij)或(aij)m × n,m×n矩阵A也记作Amn二、矩... 阅读全文
posted @ 2016-01-27 12:27 wls001 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 容斥原理是基本的计数方法。在计数时,我们要做到没有遗漏也没有重复,所以我们推出了一下公式:如果被计数的事物有A、B两类,那么,A类B类元素个数总和= 属于A类元素个数+ 属于B类元素个数—既是A类又是B类的元素个数。(A∪B = A+B - A∩B)我比较懒,后面的情况自己推吧……(*^__^*) ... 阅读全文
posted @ 2016-01-27 10:52 wls001 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 我们假设p为素数,n!=a*pe,则我们需要求解a mod p和e。e是n!能够迭代整除p的次数,因此可以使用下面式子计算:n/p+n/p2+n/p3……我们只需要对pt≤n的t进行计算所以复杂度为O(logpn)接下来计算a mod p。首先计算n!的因数中不能被p整除的项的积。举个简单的例子后不... 阅读全文
posted @ 2016-01-26 14:35 wls001 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 威尔逊定理给出当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )充分性证明:如果“p”不是素数,那么它的正因数必然包含在整数1, 2, 3, 4, … ,p− 1 中,因此gcd((p− 1)!,p) > 1,所以我们不可能得到(p− 1)! ≡ −1 (modp)。必要性证明:取... 阅读全文
posted @ 2016-01-26 14:27 wls001 阅读(1095) 评论(0) 推荐(0) 编辑
摘要: 中国剩余定理可以用来解线性同余方程组。对于一个合数n,设n=a*b(a,b互素),那么x mod n=x mod a=x mod b。所以对于一个n模合数的情况,我们只需要考虑模pk(p为素数)的情况就可以了,即f(x)≡0(mod n)↔f(x)≡0(mod pk)(pk|n)如果n不能被以上任何... 阅读全文
posted @ 2016-01-26 11:27 wls001 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 线性同余方程组就是由多个线性同余方程联立得到的。用数学符号表示就是求解ai*x≡bi(mod m)(1≤i≤n)这样的方程。可知解的全集一定可以写成x≡b(mod m)的形式,因此我们只要对所有线性同余方程依次求解即可。因为x≡b1(mod m1),所以将x写成x=b1+m1*t并代入第二个式子,可... 阅读全文
posted @ 2016-01-26 10:45 wls001 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 在p是素数的情况下,对任意整数x都有xp≡x(mod p),这个定理称为费马小定理。其中如果x无法被p整除,我们有xp-1≡1(mod p)。把这个式子变形后得到a-1≡ap-2(mod p),因此我们可以通过快速幂来求出乘法逆元。快速幂见http://www.cnblogs.com/wls001/... 阅读全文
posted @ 2016-01-25 13:26 wls001 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1定义:满足a*x≡1 (mod b)的x值就是a关于b的乘法逆元。 应用除法求mod 2.求解及证明 其实乘法逆元与a*x+b*y=gcd(a,b)是等价的 证明如下: 我们将方程两边同除以gcd(a,b)得 a1*x+b1*y=1; 其中a1=a/gcd(a,b),b1=b/gcd(a,b). 阅读全文
posted @ 2016-01-25 13:14 wls001 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 我们可以将xn分解成((x2)2)2……其中要做k次平方运算,于是我们可以将n用k来表示n=2k1+2k2+2k3……xn=x2k1x2k2x2k3所以我们只要在依次求x2i的同时进行计算就好了时间复杂度为O(logn)1 while(k>0) 2 {3 if(k&1)ys=ys*a%n;... 阅读全文
posted @ 2016-01-25 12:27 wls001 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 其原理就是先将2-n之内的所有数存在一个数组里,初始化所有数全为素数,然后从2开始寻找,只要标记是素数便将他的所有倍数的标记都改为合数,依次类推。时间复杂度为O(nloglogn)。代码实现1 void prime_table()2 {3 for(int i=2;(LL)i 2 using ... 阅读全文
posted @ 2016-01-25 11:35 wls001 阅读(326) 评论(0) 推荐(0) 编辑