随机事件与概率
计数法则
- 乘法
从 ν \nu ν个大小(即所包含元素的个数)分别为 n 1 , n 2 , . . . , n ν n_1,n_2,...,n_\nu n1,n2,...,nν的每个集合中抽取一个元素,抽取结果的个数为:
n 1 ∗ n 2 ∗ . . . ∗ n ν n_1*n_2*...*n_\nu n1∗n2∗...∗nν - 排列
从n个不同元素中无放回地每次取出m( 1 ≤ m ≤ n 1 \le m\le n 1≤m≤n)个不同元素,排列成不同次序(注意有次序,不是组合),排列的个数:
P n m = n ! ( n − m ) ! P_n^m=\frac {n!} {(n-m)!} Pnm=(n−m)!n!
当m=n时,叫全排列
P n n = n ! P_n^n=n! Pnn=n! - 分割
n个元素分割成分别包含 m 1 , m 2 , . . . , m ν m_1,m_2,...,m_\nu m1,m2,...,mν个元素的 ν \nu ν组, m 1 + m 2 + . . . + m ν = n m_1+m_2+...+m_\nu=n m1+m2+...+mν=n
分割结果的个数:
n ! m 1 ! ∗ m 2 ! ∗ . . . ∗ m ν ! \frac {n!} {m_1!*m_2!* ... *m_\nu!} m1!∗m2!∗...∗mν!n! - 组合
从n个不同的元素中,任取 m ( m ≤ n ) m(m\le n) m(m≤n)个元素为一组,叫作从n个不同元素中取出m个元素的一个组合 ,不计较次序,组合的个数:
C n m = n ! m ! ( n − m ) ! C_n^m=\frac {n!} {m!(n-m)!} Cnm=m!(n−m)!n! - 可重复排列
从 n 个元素中有放回地逐一取出 m ( m ≤ n )个元素进行排列,共有 n m 种排列 从n个元素中有放回地逐一取出m(m \le n)个元素进行排列,共有n^m种排列 从n个元素中有放回地逐一取出m(m≤n)个元素进行排列,共有nm种排列
随机变量
基本概念
- 随机变量
Φ
\varPhi
Φ为一个映射,它是一个从样本空间
Φ
\varPhi
Φ(即所有事件集合)到某数值
φ
\varphi
φ(通常是对某事件性质的描述)的映射。
即:某事件 Φ i ( i ∈ I ) \varPhi_i(i \in I) Φi(i∈I)与该事件(某性质)的取值 φ j ( j ∈ J ) \varphi_j(j \in J) φj(j∈J)存在关系,该关系属于满射,但不是单射,因为几个事件可能取同样的值。
其中, I I I即为所有事件集合 Φ \varPhi Φ的指标集, J J J为事件 Φ i \varPhi_i Φi所有可能的取值集合 φ \varphi φ的指标集。
1)两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素a,B中总有唯一的一个元素b与它对应,就这种对应为从A到B的映射,记作f:A→B。
2)B中每个元素都有原像(即满射),且集合A中不同的元素在集合B中都有不同的像(即单射),则称映射f建立了集合A和集合B之间的一个一一对应关系,也称f是A到B上的一一映射。
引用自映射,百度百科
- 随机变量分为离散型随机变量与非离散型随机变量两种。
离散型随机变量
- 有些随机变量,它全部可能取到的不相同的值是有限个或可列无限多个,也可以说概率1以一定的规律分布在各个可能值上。这种随机变量称为"离散型随机变量"。
比如:今天我去拜访一些客户,这是一个事件 Φ i ( i ∈ I ) \varPhi_i(i \in I) Φi(i∈I),这些客户中最多有 φ j ( j ∈ J ) \varphi_j(j \in J) φj(j∈J)个客户愿意购买我推销的产品,那么 φ \varphi φ的取值是一个数值,设客户数量为n,则 φ \varphi φ是 { 0 , 1 , 2 , 3 , . . , n } \{0,1,2,3,..,n\} {0,1,2,3,..,n}中的一个元素。
P ( Φ i = φ j ) P(\varPhi_i=\varphi_j) P(Φi=φj)就是 Φ i \varPhi_i Φi取值为 φ j \varphi_j φj的概率。 - 离散型随机变量的性质
( 1 ) P ( Φ i ) ≥ 0 ( 2 ) ∑ j ∈ J p ( φ j ) = 1 (1)P(\varPhi_i) \ge 0 \\(2)\sum_{j \in J} p(\varphi_j)=1 (1)P(Φi)≥0(2)j∈J∑p(φj)=1 - 期望值(或均值)
E
(
Φ
i
)
E(\varPhi_i)
E(Φi)
μ = E ( Φ i ) = ∑ j ∈ J φ j p ( φ j ) \mu=E(\varPhi_i)= \sum_{j \in J} \varphi_jp(\varphi_j) μ=E(Φi)=j∈J∑φjp(φj) -
g
(
Φ
i
)
g(\varPhi_i)
g(Φi)的期望值或均值
E [ g ( Φ i ) ] = ∑ j ∈ J g ( φ j ) p ( φ j ) E[g(\varPhi_i)]=\sum_{j \in J} g(\varphi_j)p(\varphi_j) E[g(Φi)]=j∈J∑g(φj)p(φj) - 方差
σ
2
\sigma^2
σ2
σ 2 = E [ ( Φ i − μ ) 2 ] = ∑ j ∈ J ( φ j − μ ) 2 p ( φ j ) 标准差 σ = σ 2 \sigma^2=E[(\varPhi_i- \mu)^2]=\sum_{j \in J} (\varphi_j-\mu)^2p(\varphi_j) \\标准差\sigma=\sqrt {\sigma^2} σ2=E[(Φi−μ)2]=j∈J∑(φj−μ)2p(φj)标准差σ=σ2
连续型随机变量
- 连续型随机变量是指如果随机变量X的所有可能取值不可以逐个列举出来,而是取数轴上某一区间内的任一点的随机变量。
- 相关基础见连续型随机变量,百度百科
全排列
以下内容来自文心一言的自动生成。
全排列是指从n个不同元素中任取m(m≤n,m和n都是自然数,下同)个元素按照一定的顺序排成一列。当m=n时,称为n个元素的全排列。全排列的生成算法有多种,这里介绍两种常见的算法:递归法和字典序法。
1. 递归法
递归法是生成全排列的一种直观且易于理解的方法。基本思想是将一个元素的排列问题转化为较小元素的排列问题。
算法步骤:
- 如果当前排列已经是最后一个元素,打印该排列。
- 否则,遍历当前未使用的元素,将每个元素分别与当前排列的最后一个元素交换,然后对剩余的元素(不包括已固定的最后一个元素)进行全排列。
- 回溯:将当前排列的最后一个元素与之前交换的元素交换回来,以便尝试下一个元素。
Python代码示例:
def permute(nums):
def backtrack(first=0):
# 所有数都填完了
if first == n:
output.append(nums[:])
for i in range(first, n):
# 动态维护数组
nums[first], nums[i] = nums[i], nums[first]
# 继续递归填下一个数
backtrack(first + 1)
# 撤销操作
nums[first], nums[i] = nums[i], nums[first]
n = len(nums)
output = []
backtrack()
return output
# 示例
nums = [1, 2, 3]
print(permute(nums))
2. 字典序法
字典序法是利用字典序(即按照字母表顺序)来生成全排列的。从当前排列开始,找到第一个不满足递增顺序的元素,然后找到其后面比它大的最小元素进行交换,最后反转这两个元素之后的所有元素。
算法步骤(较为抽象,实现较为复杂):
- 找到排列中的第一个逆序对(即不满足递增顺序的元素对,前一个元素比后一个元素大)。
- 在逆序对的后一个元素及其之后的元素中,找到比逆序对的前一个元素大的最小元素。
- 交换这两个元素。
- 反转逆序对之后的元素列表。
字典序法通常较难直接写出完整的代码,因为它更多地被用于理解排列的生成逻辑,而非直接实现代码。
在实际应用中,递归法因其直观性和易实现性而更为常用。不过,对于非常大的数据集,递归法可能会因为调用栈过深而导致栈溢出。此时,可以考虑使用非递归的迭代方法或者优化递归算法(如尾递归优化)。
参考文献
1、《统计学(原书第5版)》
2、映射,百度百科
3、离散型随机变量,百度百科
4、连续型随机变量,百度百科
5、排列,百度百科
6、组合,百度百科
7、《数学》中国财政经济出版社 2010版