ACM中涉及到的数学知识

原文出处http://blog.csdn.net/qq_35757800/article/details/78330713

数学!!!


目录

  • 数学
    • 目录
      • 总览
        • 模的基本性质
        • 辗转相除
        • 同余
      • 逆元
      • 杨辉三角
        • 推广
      • 卡特兰数
        • 推广
      • 斐波那契数列
        • 推广
      • 组合数
      • 数学定理
      • gcd
      • 一些数学相关的题


(本博客部分内容摘自百度百科,维基百科和大佬们的博客) 
时不时积累一些应对NOIP的数学知识,防止自己太菜了考试时候忘掉. 
Warning:大多数情况下,蒟蒻博主只介绍定理或用法,一般不会证明(逃~~

·总览

根据网上大佬的总结,OIer们应对各种比赛需要的知识如下: 
 
对NOIP,应该要学的不要学的都在这了 
不过放心,(这些我都不一定会讲)我们选其中的一些讲,再补充一些有的没的


·模

模的基本性质

(a±b) % p((a % p)±(b % p)) % p  
(ab) % p((a % p)(b % p)) % p  
除法?好像并没有基本性质呢,我们需要引入逆元


·余

余数也是很重要的东西,有很多与余有关的东西,其实不能被分到一起,但我一个完全不懂专业术语的数学蒟蒻只能都分在一起方便自己找了,如有大佬路过欢迎指正(逃~~~

辗转相除

同余

我们一般理解的同余是这样的 ab(mod   m) ,即 a % m=b % m ,则 a,b 在模 m 意义下同余.

其实它的定义是这样的 (ab) % m=0 ,即 a,b 之差被 m 整除,则 a,b 在模 m 意义下同余[注1]

emmmm….其实没区别 
但是我们要记住它的初始定义,因为它代表着如果 a % m=b % m ,则 (ab) 是m的倍数,很多题都有这种思想

同余的性质

  1. ab,bc   (mod   m)   ac   (mod   m)
  2. ab   (mod   m)   (a,m)=(b,m)
  3. ab,cd   (mod   m)a+cb+d   (mod   m)
  4. ab,cd   (mod   m)acbd   (mod   m)
  5. ab   (mod   m),kNakbk   (mod   mk)
  6. (k,m)=d,kaka'   (mod   m)aa'   (mod   md)
  7. ab   (mod   m),ab   (mod   n)ab   (mod [m,n])

—–选择证明 
对于3(对于4基本同理): 
ab,cd   (mod   m)  
m|(ab),   m|(cd)  
则: m|((a+c)(b+d))  
即: a+cb+d   (mod   m)

对于6: 
k=qd,m=pd  
kaka'=cm  
aa'=cmk=cmqd=cqmd

对于7: 
(ab)=xm=yn=k[m,n]


·逆元

定义:逆元素是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数(记做 a1 ),看上去像是 a 1 次方 
费(肥)马小定理:假如 p 是质数,且 gcd(a,p)=1 ,那么 a(p1)1 (mod   p)  
我们可以通过费马小定理得到 p 为质数时逆元计算的方法 c=ap2 % p 即是 a 在模 p 意义下的逆元

而其他情况,我们需要运用扩展欧几里得[注2]: 
欧几里得定理(算法):常用的求最大公约数的方法,欧几里得定理即为 gcd(a,b)=gcd(a,a % b)  
扩展欧几里得定理:一定存在  x,y  使得  gcd(a,b)=ax+by  
扩展欧几里得算法:顾名思义就是欧几里得的扩展,它以扩展欧几里得定理为理论,欧几里得算法为基础. 
它有这三个作用:

  1. 求解不定方程
  2. 求解线性同余方程
  3. 求模的逆元

一般来说第三个作用用的较多,话说2012NOIP同余方程就是扩欧的典型运用


·杨辉三角

杨辉三角的应用还是很多的,首先放上它的构造过程(图源wiki) 
 
如果化为普通矩阵,递推式a[i][j]=a[i-1][j]+a[i-1][j-1] 
然后对杨辉三角,我们需要知道这些基本性质

  1. 第i行数字和 2i1
  2. 前i行数字和 2i1
  3. 每一行都是左右对称的(a[n][m]=a[n][n-m+1])
  4. 每一行的偶数号的数字之和是上一行的所有数之和(可以用递推证明)
  5. 2i 行的,每个数都是奇数
  6. a[r][r]+a[r+1][r]+a[r+2][r]+…….a[n-1][r]=a[n][r+1]
  7. 若p为质数,则 p|a[p][w],w[1,p1] ,即p整除a[p][1]~a[p][p-1]

推广

与选择数公式的关系 a[n][m]=Cm1n1,C0n=1  
所以我们可以得到一些组合数性质

  1. sumn=C0n+C1n+C2n+......Cnn=2n
  2. sum0+sum1+......sumn=2n1
  3. Cmn=Cm1n1+Cmn1
  4. Cmn=Cnm+1n1
  5. Crr+Crr+1+Crr+2+......Crn1=Cr+1n

与二项式定理的关系
二项式定理:

(a+b)n=r=0nCrnanrbr

我们注意到系数项使用了组合数,而我们已经把组合数和杨辉三角联系了,所以我们将二项式定理与杨辉三角联系起来

一些其他的奇怪性质

  1. 杨辉三角斜线和可以构成斐波那契数列 
    (图解)http://oy0p2k94s.bkt.clouddn.com/%E6%9D%A8%E8%BE%89.png
  2. 将各行数字相排列,可得11的n-1(n为行数)次方:1=11^0,11=11^1, 121=11^2……
  3. 当n>5时会不符合上一条性质,此时应把第n行的最右面的数字1放在个位,然后把左面的一个数字的个位对齐到十位… …,以此类推,把空位用0补齐,然后把所有的数加起来,得到的数正好是11的n-1次方. 
    (以n=11为例,,第十一行的数为:1,10,45,120,210,252,210,120,45,10,1,结果为 25937424601=1110)
  4. 不要问我这些性质有什么用我不知道

·卡特兰数

卡特兰数有四个公式:

  1. hn=h0hn1+h1hn2+......+hn1h0,n2
  2. hn=hn14(n2)(n+1)
  3. hn=Cn2n(n+1)
  4. hn=cn2ncn12n

我们仔细思考可以知道对于大数据,前三个公式都很危险. 
原因可以参考一下我在洛谷关于卡特兰数的题解 Nepenthe

推广

应用一 括号化 
S=a1a2a3......an 如果不改变a序列的顺序,只用括号表示成对的乘积 
hn 种括号化的方法

应用一 出栈序列 
一个栈(无穷大)的进栈序列为1,2,3,……,n,有多少个不同的出栈序列? 
hn 种括号化的方法

应用三 凸多边形三角划分 
在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形 
 
n边形不同划分的方案数为 hn

应用三 二叉搜索树 
给定N个节点,能构成 hn 种不同的二叉搜索树.

应用三 n对括号正确匹配数目 
给定n对括号,括号正确配对的字符串数有 hn


·斐波那契数列

斐波那契(Fibonacci)数列(又称生兔子数列)基本递推式: fn=fn1+fn2  
其实它是有通项公式的:

fn=15[(1+52)n(152)n]
怕不怕 
这个公式也是一个用无理数算出有理数实例 
公式的推导过程比较高级这里不推了 注3

  1. fn1fn+1f2n=(1)n ,这个公式揭示了一个性质:从第二项开始,每个奇数项的平方都比前后两项之积多1,每个偶数项的平方都比前后两项之积少1
  2. f1+f3+f5+...+f2n1=f2n ,一段奇数项之和等于最后一项的后面一项
  3. f2+f4+f6+...+f2n=f2n+11
  4. f21+f22+f23+...+f2n=fnfn+1
  5. f2nfn=fn1+fn+1
  6. f1+2f2+3f3+4f4...+nfn=nfn+2fn+3+2
  7. gcd(fn,fm)=fgcd(n,m) ,这个性质还是很有用的,但一般用在结论题

推广

与排列组合的关系 
走楼梯:有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的方法? 
丢硬币:类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种? 
答案 an=fn+1fn

与矩阵乘法的关系 
n 很大,要求出 fn 时,就要用到矩阵乘法

·组合数

·数学定理

·gcd

·一些数学相关的题

博客是会实时更新的

最后送给大家一张公式图片 

你可能感兴趣的:(算法)