![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
组合数学、概率论、博弈论与数理统计等基础数学
文章平均质量分 78
组合数学、概率论、群论、博弈论与线性代数等基础数学
爱寂寞的时光
这个作者很懒,什么都没留下…
展开
-
组合数学——二项式反演
二项式反演原创 2022-08-05 13:14:53 · 359 阅读 · 0 评论 -
Zscoder‘s 生成函数教程(三)
本文翻译自的 CF Blog 文章。本文是原文的第二部分,生成函数在 CP 中实战。翻译 2022-08-04 14:18:10 · 216 阅读 · 0 评论 -
Zscoder‘s 生成函数教程(二)
本文翻译自 zscoder 的 CF Blog 文章 [Tutorial] Generating Functions in Competitive Programming (Part 1) 。本文是原文的第一部分中的后半段,利用生成函数解决简单的计数类问题。翻译 2022-08-02 21:11:42 · 286 阅读 · 0 评论 -
多项式——多项式牛顿迭代
多项式牛顿迭代原创 2022-08-01 17:47:19 · 994 阅读 · 0 评论 -
多项式——多项式函数
多项式函数原创 2022-08-01 17:45:34 · 1618 阅读 · 0 评论 -
多项式——多项式除法
多项式除法原创 2022-07-31 23:52:26 · 799 阅读 · 0 评论 -
多项式与生成函数教程合集
多项式教程集合原创 2022-07-31 20:15:28 · 167 阅读 · 0 评论 -
多项式——乘法逆元
多项式的乘法逆元原创 2022-07-31 20:10:48 · 1664 阅读 · 0 评论 -
Zscoder‘s 生成函数教程(一)
本文翻译自 zscoder 的 CF Blog 文章 [Tutorial] Generating Functions in Competitive Programming (Part 1) 。本文是原文的第一部分中的前半段,生成函数入门。如有侵权,联系作者将尽快删除;如有翻译不足之处,敬请指出。...翻译 2022-07-31 18:08:23 · 476 阅读 · 0 评论 -
组合数学——特征方程与线性递推方程
组合数学——特征方程与线性递推方程大多数计数问题都可以表示成线性的递推关系,而特征方程是解决这些线性递推关系的有利工具。一个度为 kkk 的 线性齐次常系数递推方程 指的是具有如下形式的方程:an=c1an−1+c2an−2+…+ckan−ka_n = c_1a_{n-1} + c_2a_{n-2} + \ldots + c_ka_{n-k}an=c1an−1+c2an−2+…+ckan−k这里 c1,c2,…,ckc_1,c_2,\ldots,c_kc1,c2,…,ck 都原创 2022-02-22 22:41:49 · 1180 阅读 · 0 评论 -
OI线性代数——矩阵
OI线性代数——矩阵目录OI线性代数——矩阵矩阵与向量矩阵的运算矩阵基本运算矩阵乘法矩阵的幂线性递推斐波那契数列递推更一般的递推高斯消元与线性方程、行列式与矩阵的逆本章只讨论OI中的线性代数,过于高深的线性代数的知识请参考其他教材。矩阵与向量矩阵是一个数学概念,对应着计算机中的二维数组。例如:A=[135124]A= \begin{bmatrix}1 & 3 & 5 \\ 1 & 2 & 4\end{bmatrix}A=[113254]是一个2×3原创 2022-01-21 14:47:54 · 388 阅读 · 0 评论 -
组合数学——分拆数
组合数学——分拆数分拆数也叫无序划分数(A000041)。设nnn的一个无序划分集为1≤b1≤b2≤…≤bn1 \leq b_1 \leq b_2 \leq \ldots \leq b_n1≤b1≤b2≤…≤bn其中∑bi=n\sum b_i = n∑bi=n,问这样的无序划分集有多少个?估计DFS时间复杂度分拆数的增长速率相较于其他组合数列来说是增长速度最慢的数量之一,其p50<1e6p_{50} < 1e6p50<1e6。当n=50n=50n=50枚举分拆都是安全的。原创 2021-11-08 01:33:26 · 994 阅读 · 0 评论 -
组合数学——划分数&贝尔数
组合数学——划分数&贝尔数贝尔数是组合数学里面一种重要的数列(A000110)。BnB_nBn为模数为nnn的集合的划分方法数。例如集合{a,b,c}\{a,b,c\}{a,b,c}的划分有:{{a},{b},{c}}{{a},{b,c}}{{b},{a,c}}{{c},{a,b}}{{a,b,c}} \begin{aligned} &\{ \{a\},\{b\},\{c\}\} \\ &\{ \{a\},\{b,c\}\} \\ &\{ \{b\},\{a,c\原创 2021-11-08 01:27:18 · 589 阅读 · 0 评论 -
多项式算法——快速傅里叶变换FFT
多项式算法——快速傅里叶变换FFT目录多项式算法——快速傅里叶变换FFT多项式多项式加法多项式乘法多项式表示法系数表示点值表示DFT与FFT单位负数根两个多项式函数相加的时间复杂度为O(n)O(n)O(n),而相乘的时间复杂度为O(n2)O(n^2)O(n2),即所有系数的笛卡尔积。傅里叶变换DFT将优化多项式相乘(以下简称卷积),而快速傅里叶变换则优化至O(nlgn)O(n \lg n)O(nlgn)。多项式本章定义的多项式函数为定义在实数域上,关于变量xxx形如:A(x)=∑j=0n−1aj原创 2021-09-08 15:11:41 · 428 阅读 · 1 评论 -
OI中的组合数与二项式
组合数与二项式公式1:帕斯卡定理(nm)=(n−1m)+(n−1m−1)\binom{n}{m} = \binom{n - 1}{m} + \binom{n-1}{m-1}(mn)=(mn−1)+(m−1n−1)公式2:对上指标求和∑i=1n(im)=(n+1m+1)\sum_{i=1}^n\binom{i}{m} = \binom{n+1}{m+1}i=1∑n(mi)=(m+1n+1)证明:考虑对一个组合数进行连续帕斯卡展开,将下指标统一至mmm(53)=(43)+(42)原创 2021-09-06 16:37:32 · 288 阅读 · 0 评论 -
概率论——赠券收集问题
概率论——赠券收集问题题意有nnn中不同的邮票。现在想购买所有种类的邮票,第iii次购买一张邮票需要花费iii元,并且购买到的这张邮票的种类的概率均等即均为1n\frac{1}{n}n1,求花费的期望。题解根据等差数列求和公式,购买次数为xxx的花费为x(x+1)2\frac{x(x+1)}{2}2x(x+1),我们所求的就是E(x(x+1)2)E(\frac{x(x+1)}{2})E(2x(x+1)),即:E(x(x+1)2)=E(x2+x2)=E(x2)+E(x)2E(\frac{x(原创 2021-08-10 17:23:59 · 1545 阅读 · 0 评论 -
博弈论与SG函数(Nim游戏)
博弈论与SG函数(Nim游戏)目录博弈论与SG函数(Nim游戏)游戏状态状态图(SG图)Nim 游戏Nim 和与SG定理SG函数Grundy数字在本篇,我们考虑的是两个玩家进行游戏,并且不存在随机概率因素(例如随机抽卡)。我们的目标是找到一个最优策略去赢得游戏而不关心谁是对手。游戏状态让我们考虑一个游戏,这有一堆棍子,两个游戏者A和B依次从这一堆棍子中抽走一些,每次只能抽走1,2或3个棍子,最终谁抽走了最后一根棍子谁就是赢家。这个游戏包含n+1n+1n+1个状态,分别是0,1,2,…,n0,1,原创 2021-08-07 12:13:59 · 406 阅读 · 0 评论 -
概率论——马尔科夫链
概率论——马尔科夫链马尔科夫链是一个随机过程,包含一些状态和转移概率,对于每一个状态,我们都知道由这个状态向其他状态转移的概率是多少。例如,我们考虑处在一个nnn层楼的一楼,每次我们都有同等概率的上楼或下楼,除非处在一楼或者顶楼。那么kkk步之后处于mmm层的概率是多少?如果n=5n=5n=5,每一层楼都是一个状态的话,对应的马尔科夫链为:我们定义向量Vk=[p1,p2,…,pn]V_k=[p_1,p_2,\ldots,p_n]Vk=[p1,p2,…,pn],为经过kkk步之后,处在iii原创 2021-08-06 13:36:57 · 997 阅读 · 0 评论 -
OI中的概率论
概述本文介绍一些概率论的基础概念。为了简单起见,本文中提到的所有集合都默认是 有限集。如想了解更一般的理论,请阅读任何一本大学概率论课本,或者期待本文的后续更新(如果有这回事的话)。事件单位事件、事件空间、随机事件在一次随机试验 EEE 中可能发生的不能再细分的结果被称为 单位事件。在随机试验中可能发生的所有单位事件的集合称为 事件空间,用 SSS 来表示。也就是说,进行一次随机试验 EEE,其结果一定符合 SSS 中的恰好一个元素,不可能是零个或多个。例如在一次掷骰子的随机试验中,如果用获得的转载 2021-08-06 13:15:16 · 755 阅读 · 0 评论 -
矩阵树定理
矩阵树定理矩阵树定理也称Matrix-Tree定理或Kirchhoff定理。这个定理提供了一种方式使用一个特殊的矩阵的行列式来计算一个图的生成树的数量。对于一个无向图来说,我们可以构造它的Laplace矩阵LLL,其中:如果节点iii有度为ddd,那么L[i,i]=dL[i,i] = dL[i,i]=d如果节点iii和节点jjj之间有边相连,那么L[i,j]=L[j,i]=−1L[i,j] = L[j,i] =-1L[i,j]=L[j,i]=−1其他情况L[i,j]=0L[i,j] = 0L[i原创 2021-08-06 12:53:34 · 1443 阅读 · 0 评论 -
对称计数——Burnside引理
对称计数——Burnside引理对一类对称问题计数的时候,常用Burnside引理:∣X/G∣=1∣G∣∑g∈G∣Xg∣|X/G| = \frac{1}{|G|} \sum_{g \in G} |X_g|∣X/G∣=∣G∣1g∈G∑∣Xg∣其中∣X/G∣|X/G|∣X/G∣为待计数结果,∣G∣|G|∣G∣为操作总数,XgX_gXg为做了ggg这个操作之后,组合中的等价类的个数。项链问题有一个项链上面有nnn个珠子,每个珠子可以染成mmm种颜色中的一种颜色。如果两个染色方案是相同的,当且原创 2021-08-04 22:11:25 · 429 阅读 · 0 评论 -
组合数学——排列组合经典模型
组合数学——球盒模型nnn个不同的球放入mmm个相同的盒子里面,盒子不允许为空这和第二类斯特林数的定义相同,答案为{nm}{n \brace m}{mn}。nnn个不同的球放入mmm个不同的盒子里面,盒子不允许为空通过第二类斯特林数计算出nnn个不同的球放入mmm个相同的盒子里面,盒子不允许为空的方案数为{nm}{n \brace m}{mn},之后再对mmm个盒子进行排列即可,答案为{nm}×m!{n \brace m} \times m!{mn}×m!。nnn个不同的球放入mmm个相同的原创 2021-08-04 17:31:50 · 964 阅读 · 0 评论 -
二项式系数
二项式系数二项式系数(nk)\binom{n}{k}(kn),意味着从nnn个元素里面选kkk个子集元素的方案数。二项式系数的递推公式(nk)=(n−1k)+(n−1k−1)\binom{n}{k} = \binom{n- 1}{k} + \binom{n -1}{k-1}(kn)=(kn−1)+(k−1n−1)我们考虑第nnn个元素是否加入到子集中,如果加入,那么就从前n−1n-1n−1个元素中再选k−1k-1k−1个元素即可,方案数为(n−1k−1)\binom{n- 1}{k -原创 2021-08-04 12:36:53 · 3953 阅读 · 0 评论 -
格雷码介绍
格雷码介绍典型的二进制格雷码(Binary Gray Code)简称格雷码,因1953年公开的弗兰克·格雷(Frank Gray,18870913-19690523)专利“Pulse Code Communication”而得名,当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。法国电讯工程师波特(Jean-Maurice-Émile Baudot,18450911-19030328)在1880年曾用过的波特码相当于它的一种变形。1941年George Stibitz设计的一种8元二进制机械原创 2021-07-14 16:54:39 · 3099 阅读 · 0 评论 -
卢卡斯Lucas定理
卢卡斯Lucas定理LUCAS\mathscr{LUCAS}LUCAS内容(nm)≡(⌊np⌋⌊mp⌋)⋅(nmod pmmod p)mod p\binom{n}{m} \equiv \binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \frac{m}{p} \rfloor} \cdot \binom{n \mod p}{m \mod p} \mod p(mn)≡(⌊pm⌋⌊pn⌋)⋅(mmodpnmodp)modp其中ppp为质数。上式原创 2021-07-06 21:00:08 · 237 阅读 · 0 评论 -
OI中的线性代数
OI中的线性代数高斯消元法用于求解线性方程组:选择主元并系数化为1向下步骤:向下消元向上步骤:向上消元P3389#include <bits/stdc++.h>using namespace std;#define FR freopen("in.txt", "r", stdin)#define FW freopen("out.txt", "w", stdout)#define MOD 998244353typedef long long ll;double原创 2021-06-01 19:12:06 · 227 阅读 · 0 评论 -
错排问题、错排数与牛顿反演
错排问题求有多少种 111 到 nnn 的排列 aaa,满足序列恰好有 mmm 个位置 iii,使得 ai=ia_i = iai=i。我们定义错排数D(n)D(n)D(n),有有多少种 111 到 nnn 的排列 aaa,满足序列恰好有 000 个位置 iii,使得 ai=ia_i = iai=i。那么原答案为:(nm)D(n−m)\binom{n}{m}D(n - m)(mn)D(n−m)那么,该断言:求有多少种 111 到 nnn 的排列 aaa,满足序列恰好有 mmm 个位置原创 2021-05-24 16:48:25 · 671 阅读 · 1 评论 -
斯特林(Stirling)数
斯特林(Stirling)数斯特林数是组合数学中,关于子集划分和置换划分的一类问题的解。其中,分为第一类斯特林数和第二类斯特林数。第一类斯特林数[nk]{n \brack k}[kn] 表示nnn个元素排成kkk个轮换。这里的轮换是指:例如存在轮换[1,2,3][1,2,3][1,2,3],那么意思就是存在三个相等序列[1,2,3]=[2,3,1]=[3,1,2][1,2,3]=[2,3,1]=[3,1,2][1,2,3]=[2,3,1]=[3,1,2]。特别的,一个元素的轮换只有他本身,因为[原创 2021-05-16 21:34:15 · 1257 阅读 · 0 评论 -
OI技巧集合
二进制位运算技巧集合异或前缀和定义异或前缀和函数 sumXor(x)\text{sumXor}(x)sumXor(x),表示 0⊕1⊕2⊕⋯⊕0 \oplus 1 \oplus 2 \oplus \dots \oplus0⊕1⊕2⊕⋯⊕。连续四个相邻整数的异或和有:∀i∈Z,4i⊕(4i+1)⊕(4i+2)⊕(4i+3)=0\forall i \in Z,4i \oplus (4i+1) \oplus (4i+2) \oplus (4i+3) = 0∀i∈Z,4i⊕(4i+1)⊕(4i+2)⊕(原创 2021-05-07 10:13:15 · 200 阅读 · 0 评论 -
组合数学——生成函数
生成函数生成函数(generating function),又称母函数,是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。生成函数有许多不同的种类,但大多可以表示为单一的形式:F(x)=∑n=0∞ankn(x)F(x) = \sum_{n=0}^{\infty}a_{n}k_{n}(x)F(x)=n=0∑∞ankn(x)其中ana_{n}an是数列的第nnn项,kn(x)k_{n}(x)kn(x)被称为核函数,不同的核函数决定了不同类型的生成函数。生成函数既可以是有限的,也可原创 2021-04-06 20:10:18 · 3856 阅读 · 0 评论 -
线性基
线性基线性基这个概念来自于线性代数,即一个矩阵的列向量所能表示空间的一组最小基底。我们在异或运算下面也可以定义一个空间,即一组数[x1,x2,…,xn][x_{1},x_{2},\ldots,x_{n}][x1,x2,…,xn]由异或运算进行组合,能够表示的空间。同理,我们定义异或意义下的线性基,表示为是一组数[x1,x2,…,xn][x_{1},x_{2},\ldots,x_{n}][x1,x2,…,xn]的一个基底[b1,b2,…,bm][b_{1},b_{2},\ldots,b_{m原创 2021-03-27 15:18:44 · 270 阅读 · 0 评论 -
蓝桥杯第四届第九题:垒骰子——矩阵解法
蓝桥杯第四届第九题:垒骰子——矩阵解法题目赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。由于方案数原创 2021-03-19 11:17:45 · 681 阅读 · 1 评论 -
蓄水池抽样算法
蓄水池抽样算法给定一个相当多的数据,但是内存数量有限,每次只能读取mmm个数据,现在想在总样本空间中随机抽取mmm个数据,保证每个数据抽取到的概率相同。m=1的情况我们依次遍历样本空间中的数据,每次只读取一个数据,并设置一个槽,储存一个数据。假设当前读到了第iii个数据,制造概率1i\frac{1}{i}i1的概率,用这个当前读取的数据取替换槽中的数据。最后,当我们遍历完样本空间之后,这个槽中的数据就是我们想要的随机抽取的数据。第iii个数据被抽中的概率为,用第iii个数据替换槽中数据的概率加上原创 2021-03-07 13:16:32 · 87 阅读 · 1 评论 -
摊还分析
摊还分析在摊还分析中,我们求数据结构的一个操作序列中执行的所有操作的平均时间,来评价操作的代价。这样,我们就可以说一系列操作的平均时间是很低的,虽然某一个操作的时间代价可能很高。摊还分析不同于平均情况分析,它并不涉及概率,它保证最坏情况下的每个操作的平均性能。本文介绍摊还分析中最常用的三种技术:聚合分析、核算法、势能法。聚合分析聚合分析:这种方法确定nnn个操作在最坏情况下的总时间T(n)T(n)T(n),然后计算每个操作的平均时间T(n)n\frac{T(n)}{n}nT(n),把平均时间作为每原创 2021-03-05 17:11:04 · 533 阅读 · 1 评论 -
Catalan数
Catalan(卡特兰)数卡特兰数,又称卡塔兰数,是组合数学中一种常出现于各种计数问题中的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。1730年左右被蒙古族数学家明安图 (1692-1763)使用于对三角函数幂级数的推导而首次发现,1774年被发表在《割圜密率捷法》。——百度百科基本概念引入首先我们想这么一个问题:对于一个n×nn \times nn×n的一个矩形方格,连接其副对角线。一个BugBugBug(虫子)现在处在左下角,每次只能向上或向右移动一原创 2021-03-01 12:25:02 · 1953 阅读 · 0 评论 -
高精度模板
高精度模板struct Decmial{ int arr[100]; Decmial(int init) { for(int i = 0; i<100; i++) { arr[i] = temp[i] = 0; } int curr = 1; while(init) { arr[curr] = init % 10;原创 2021-02-27 21:53:07 · 58 阅读 · 0 评论 -
快速乘法(俄罗斯农民乘法)和快速幂
快速乘法(俄罗斯农民乘法)和快速幂快速乘法在一般的竖式乘法a×ba \times ba×b中,我们通常把bbb的每一个位和aaa乘,我们能不能把bbb换成二进制,并用二进制的每一位和aaa相乘呢?这就要用到快速乘法了,拿88×9988 \times 9988×99为例:88×99=88×1100011(2)88×1×20+88×1×21+88×0×22+88×0×23+88×0×24+88×1×25+88×1×2688 \times 99 = 88 \times 110 0011_{(2)} \\原创 2021-02-27 21:26:21 · 396 阅读 · 0 评论 -
生成上/下一个排列
生成上/下一个排列生成下一个排列我们从排列的后面找到第一个递减的位置eee,说明eee之前的排列均已经排列完了,我们把eee位置上的元素与eee之后第一个大于它的元素交换位置,最后将eee之后的元素按照升序排列即可。生成上一个排列我们从排列的后面找到第一个递增的位置eee,说明eee之前的排列是第一个排列,我们把eee位置上的元素与eee之后第一个小于它的元素交换位置,最后将eee之后的元素按照降序排列即可。代码生成上一个排列。#include <bits/stdc++.h>u原创 2021-02-22 21:13:47 · 92 阅读 · 0 评论 -
康托展开
康托展开康托展开是建立f:An⇔Nnf : A_{n} \Leftrightarrow \mathbb{N}_{n}f:An⇔Nn,即nnn的一个排列到自然数的子集的的一个双射函数。康托展开一个排列的康托展开对应的自然数的含义是,这个排列之前有多少排列小于它。因此,我们可以建立如下过程:例如:543215432154321令ans=0ans = 0ans=0。首先我们看到的数字是555,在555之后的序列432143214321中有4个比他小的数,123412341234均可以在555之前原创 2021-02-22 21:07:58 · 92 阅读 · 0 评论 -
Dilworth定理
Dilworth定理Dilworth定理:偏序集的最少反链划分数等于最长链的长度举例来说,给定一个序列,集合SSS是≥\geq≥的偏序集合,并且序列元素都在SSS里面,把SSS的最小大小记为∣Smin∣|S_{\min}|∣Smin∣,则∣LIS∣=∣Smin∣|LIS| = |S_{\min}|∣LIS∣=∣Smin∣。其中∣LIS∣|LIS|∣LIS∣是最长上升子序列的长度。也就是说,集合SminS_{\min}Smin的划分是按照最长上升子序列的长度划分的。求∣Smin∣|S_原创 2021-02-16 17:33:02 · 904 阅读 · 0 评论