随笔分类 - 算法二三事 / 数学知识
数论知识
摘要:# 简单博弈论 ## Nim游戏 Nim游戏满足以下三个条件: (1)两名玩家交替行动 (2)游戏过程中,可以执行的的行动和轮到哪位玩家没有关系 (3)不能行动的玩家判负 比如围棋就不是一种Nim游戏,因为围棋有黑白两子不满足(2),围棋判断输赢规则较为复杂不符合(3)。下面的取石子游戏就是一个Ni
阅读全文
摘要:# 容斥原理 - 内容 用于解决多个有相交情况的集合的并集,例如三个集合的情形: 对于n个集合的交集有公式:$|S_1\cup S_2\cup S_3\cup \dots S_n|=(|S_1|+|S_2
阅读全文
摘要:# 卡特兰数 - 定义 卡特兰数非常常见,最为典型的就是给定n个1和n个0排列成为一个2n长度的01序列,要求对于任一个 都有从第一个数到第k个数中0的个数都不少于1的个数。 - 求法及其推导 我们可以把这个01序列抽象成一个具体的问题: 0代表向右走一步,1代表向上走一步
阅读全文
摘要:# 求组合数 ## 公式法 - 公式 - 公式理解 在b个要抽取的物品中任选一个x物品,第一次抽取情况无非两种,抽到了x和没有抽到x,如果抽到了x那么就只需要在剩下的a-1个中再抽取b-1个即可,如果没有抽到x,就在剩下的a-1个中
阅读全文
摘要:# 高斯消元法 - 作用 可以快速求解n元线性方程组: $$ \begin{cases} a_{11}x_1+a_{12}x_2+a_{13}x_3+\dots+a_{1n}x_n=b_1\ a_{21}x_1+a_{22}x_2+a_{23}x_3+\dots+a_{2n}x_n=b_2\ \
阅读全文
摘要:# 欧几里得算法 - 算法内容 计算两个数的最大公约数的算法,也叫辗转相除法。即: gcd(a,b)=gcd(b,a%b)。 - 数学证明 设gcd(a,b)=d,则必定有:d|a且d|b,则必定有d|(ax+by)而a%b=a-a/b*b,所以d|(a%b),则d必定为b和a%b的约数,并且a%b
阅读全文
摘要:# 欧拉函数 - 定义 对于正整数n小于等于n的数中与n互质的数的个数记为 ,即为欧拉函数 - 欧拉公式 由算数基本定理任意一个正整数都可以写作n= 那么$\varphi(n)=n\prod\limits_
阅读全文