- gf24118 的博客
GF2025C2卡特兰数&离散数学(概率与期望)
- 2025-8-12 11:09:48 @
卡特兰数&离散数学(概率与期望)!!!
前言
666打这篇博客给编者打成傻子了,有点乱将就着看吧(编者已经很努力让本博客变整洁了QwQ),太多了还得出后续(其实真不用)
卡特兰数
应用
卡特兰数可以应用至以下场景: 有 只person排成一行进入哥哥的演唱会。入场费 5 元。其中只有 只person有一张 元钞票,另外 只person只有 元钞票,剧院无其它钞票,问有多少种方法使得只要有 10 元的person买票,售票处就有 5 元的钞票找零?
哥哥演唱会be like:(点击查看)
关系式以及代码
编者注:依旧枯燥
-
递推关系
该递推关系的解为:
$$H_n = \frac{\binom{2n}{n}}{n+1}(n \geq 2, n \in \mathbf{N_{+}}) $$关于卡特兰数数的常见公式:
此方式c++代码:
#include <iostream>
using namespace std;
int n;
long long f[25];
int main() {
f[0] = 1;
cin >> n;
for (int i = 1; i <= n; i++) f[i] = f[i - 1] * (4 * i - 2) / (i + 1);
// 这里用的是常见公式2
cout << f[n] << endl;
return 0;
}
-
封闭形式
编者注:看不懂别硬看,跳过或者直接记结论就行。
卡特兰数的递推式为
其中 。设它的普通生成函数为 。
我们发现卡特兰数的递推式与卷积的形式很相似,因此我们用卷积来构造关于 的方程:
解得
那么这就产生了一个问题:我们应该取哪一个根呢?我们将其分子有理化:
代入 ,我们得到的是 的常数项,也就是 。当 的时候有 ,满足要求。而另一个解会出现分母为 的情况(不收敛),舍弃。
因此我们得到了卡特兰数生成函数的封闭形式:
接下来我们要将其展开。但注意到它的分母不是斐波那契数列那样的多项式形式,因此不方便套用等比数列的展开形式。在这里我们需要使用牛顿二项式定理。我们来先展开 :
注意到
这里使用了双阶乘的化简技巧。那么带回 得到
带回原式得到
这样我们就得到了卡特兰数的通项公式。
好,我们再看一下编者搜索的卡特兰数代码。
#include <bits/stdc++.h>
using namespace std;
int ktls(int n){
if(n<=1) return 1;
int *h=new int [n+1];
h[0]=h[1]=1;
for(int i=2;i<=n;i++){
h[i]=0;
for(int j=0;j<i;j++) h[i]+=(h[j]*h[i-1-j]);
}
int result=h[n];
delete [] h;
return result;
}
int main() {
int n;
cin>>n;
cout<<ktls(n);
return 0;
}
离散数学(概率与期望)
基本概念概述
在研究具体的随机现象时我们通常着重关注以下要素:
-
样本空间: ,指明随机现象所有可能出现的结果。
-
事件域: ,表示我们所关心的所有事件。
-
概率: ,描述每一个事件发生的可能性大小。
样本空间、随机事件
定义
一个随机现象中可能发生的不能再细分的结果被称为 样本点。所有样本点的集合称为 样本空间,通常用 来表示。
一个 随机事件 是样本空间 的子集,它由若干样本点构成,用大写字母 , , , \cdots 表示。 好,对于一个随机现象的结果 和一个随机事件 ,我们称事件 发生了 当且仅当 。
好了咱们举个栗子生动说明,爱吃土豆、马铃薯和potato是一个随机现象,其样本空间可以表示为 。设随机事件 为「获得的点数大于 」,则 。若某次发现爱吃土豆等东西 ,由于 ,故事件 没有发生。
事件的运算
由于我们将随机事件定义为了样本空间 的子集,故我们可以将集合的运算(如交、并、补等)移植到随机事件上。记号与集合运算保持一致。
还有一些比较特别,事件的并也可记作 ,事件的交 也可记作 ,此时也可分别称作 和 。
概率
概率概述
概率的公理化定义:
概率函数 是一个从事件域 到闭区间 的映射,且满足:
-
规范性:事件 的概率值为 ,即 。
-
可数可加性:若一列事件 , , 两两不交,则 $P\left( \bigcup_{i \geq 1} A_i \right) = \sum_{i \geq 1} P(A_i)$。
概率函数的性质
对于任意随机事件(比如明天开学、天降马铃薯) , ,有:
-
单调性:若 ,则有 。
-
容斥原理:。,这里 表示差集。
我们在一开始提到,研究具体的随机现象时我们通常关注样本空间 、事件域 以及概率函数 。我们将三元组 称为一个概率空间。
条件概率
定义
若已知事件 发生,在此条件下事件 发生的概率称为 条件概率,记作 。
在概率空间 中,若事件 满足 ,则条件概率 定义为
$$P(B|A) = \frac{P(AB)}{P(A)} \quad \forall B \in \mathcal{F} $$可以验证根据上式定义出的 是 上的概率函数。
根据条件概率的定义可以直接推出下面两个等式:
- 概率乘法公式:在概率空间 中,若 ,则对任意事件 都有
- 全概率公式:在概率空间 中,若一组事件 , 两两不交且和为 ,则对任意事件 都有
事件
事件的独立性
在研究条件概率的过程中,可能会出现 的情况。从直观上讲就是事件 是否发生并不会告诉我们关于事件 的任何信息,即事件 与事件 「无关」。于是我们就有了下面的定义
定义
若同一概率空间中的事件 , 满足 则称 , 独立。对于多个事件 , , ,我们称其独立,当且仅当对任意一组事件 $\{ A_{i_k} : 1 \leq i_1 < i_2 < \cdots < i_k \leq n \}$ 都有
$$P( A_{i_1}A_{i_2} \cdots A_{i_r} ) = \prod_{k=1}^{r} P(A_{i_k}) $$多个事件的独立性
对于多个事件,一般不能从两两独立推出这些事件独立。考虑以下反例: 有一个正四面体骰子,其中三面被分别涂成红色、绿色、蓝色,另一面则三色皆有。现在扔一次该骰子,令事件 ,,分别表示与桌面接触的一面包含红色、绿色、蓝色。
不难计算,而 。
显然 , , 两两独立,但由于 ,故 , , 不独立。