原文出处http://blog.csdn.net/qq_35757800/article/details/78330713
(本博客部分内容摘自百度百科,维基百科和大佬们的博客)
时不时积累一些应对NOIP的数学知识,防止自己太菜了考试时候忘掉.
Warning:大多数情况下,蒟蒻博主只介绍定理或用法,一般不会证明(逃~~
根据网上大佬的总结,OIer们应对各种比赛需要的知识如下:
对NOIP,应该要学的不要学的都在这了
不过放心,(这些我都不一定会讲)我们选其中的一些讲,再补充一些有的没的
(a±b) % p≡((a % p)±(b % p)) % p
(a∗b) % p≡((a % p)∗(b % p)) % p
除法?好像并没有基本性质呢,我们需要引入逆元
余数也是很重要的东西,有很多与余有关的东西,其实不能被分到一起,但我一个完全不懂专业术语的数学蒟蒻只能都分在一起方便自己找了,如有大佬路过欢迎指正(逃~~~
我们一般理解的同余是这样的 a≡b(mod m) ,即 a % m=b % m ,则 a,b 在模 m 意义下同余.
其实它的定义是这样的 (a−b) % m=0 ,即 a,b 之差被 m 整除,则 a,b 在模 m 意义下同余[注1]
emmmm….其实没区别
但是我们要记住它的初始定义,因为它代表着如果 a % m=b % m ,则 (a−b) 是m的倍数,很多题都有这种思想
同余的性质
—–选择证明
对于3(对于4基本同理):
∵ a≡b,c≡d (mod m)
∴ m|(a−b), m|(c−d)
则: m|((a+c)−(b+d))
即: a+c≡b+d (mod m)
对于6:
设 k=qd,m=pd
ka−ka'=cm
则 a−a'=c∗mk=cmqd=cq∗md
对于7:
(a−b)=xm=yn=k∗[m,n]
定义:逆元素是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数(记做 a−1 ),看上去像是 a 的 −1 次方
费(肥)马小定理:假如 p 是质数,且 gcd(a,p)=1 ,那么 a(p−1)≡1 (mod p)
我们可以通过费马小定理得到 p 为质数时逆元计算的方法 c=ap−2 % p 即是 a 在模 p 意义下的逆元
而其他情况,我们需要运用扩展欧几里得[注2]:
欧几里得定理(算法):常用的求最大公约数的方法,欧几里得定理即为 gcd(a,b)=gcd(a,a % b)
扩展欧几里得定理:一定存在 x,y 使得 gcd(a,b)=ax+by
扩展欧几里得算法:顾名思义就是欧几里得的扩展,它以扩展欧几里得定理为理论,欧几里得算法为基础.
它有这三个作用:
一般来说第三个作用用的较多,话说2012NOIP同余方程就是扩欧的典型运用
杨辉三角的应用还是很多的,首先放上它的构造过程(图源wiki)
如果化为普通矩阵,递推式a[i][j]=a[i-1][j]+a[i-1][j-1]
然后对杨辉三角,我们需要知道这些基本性质
与选择数公式的关系: a[n][m]=Cm−1n−1,C0n=1
所以我们可以得到一些组合数性质
与二项式定理的关系:
二项式定理:
一些其他的奇怪性质
卡特兰数有四个公式:
我们仔细思考可以知道对于大数据,前三个公式都很危险.
原因可以参考一下我在洛谷关于卡特兰数的题解 Nepenthe
应用一 括号化
S=a1a2a3......an 如果不改变a序列的顺序,只用括号表示成对的乘积
有 hn 种括号化的方法
应用一 出栈序列
一个栈(无穷大)的进栈序列为1,2,3,……,n,有多少个不同的出栈序列?
有 hn 种括号化的方法
应用三 凸多边形三角划分
在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形划分成了若干个三角形
n边形不同划分的方案数为 hn
应用三 二叉搜索树
给定N个节点,能构成 hn 种不同的二叉搜索树.
应用三 n对括号正确匹配数目
给定n对括号,括号正确配对的字符串数有 hn 种
斐波那契(Fibonacci)数列(又称生兔子数列)基本递推式: fn=fn−1+fn−2
其实它是有通项公式的:
与排列组合的关系
走楼梯:有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的方法?
丢硬币:类似的,一枚均匀的硬币掷10次,问不连续出现正面的可能情形有多少种?
答案 an=fn+1fn
与矩阵乘法的关系
当 n 很大,要求出 fn 时,就要用到矩阵乘法
博客是会实时更新的
最后送给大家一张公式图片