形式化的组合数学

约定

我们给出一些约定:

\([n]\) 表示集合 \({1,2,3,4,5,...,n}\)

知识点

加法原理、乘法原理

这些是最基本的知识点了。

加法原理

\(A_1,A_2,A_3,A_{...},A_n\) 均为集合,且满足 \(A_i\cap A_j=\varnothing ,\forall i,j \in [n]\)

\(|\bigcup\limits_{i=1}^nA_i|=\sum\limits_{i=1}^n |A_i|\)

乘法原理

\(S=P\times Q={(p,q),p\in P,q\in Q}\)

\(|S|=|P||Q|\)

排列

对于 \(a_1,a_2,a_{...},a_n\) 的排列数,可能有相同(我们假定 \(a_i\in [n]\),如果不是这样的话,我们可以弄个映射射到 \([n]\) 上)。

形式化的表达排列,首先定义什么是两个排列相同。考虑一个 \([n]\) 的一一对应 \(p:[n] \to [n]\),如果对于两种排列 \(p1,p2\),我们有 \(a_{p1_i}=a_{p2_i},\forall i\in[n]\),则两种排列 \(p1=p2\)

注意上面的表述,我们取排列并不是排列 \(a\) 集合,而是去排列一个映射 \(p\) 集合。

首先,解决排列数,如果 \(a_i\not= a_j,\forall i,j\in [n],i \not= j\),那么答案是非常经典的 \(n!\) 种。

但是我们可能 \(a\) 中会有相同元素,那么我们该如何考虑呢?

\(b_i\) 表示 \(i\) 号不重元素出现次数,对于每一个映射 \(p\) 我们均有 \(\prod\limits_{i=1}^nb_i\) 种相同的映射 \(p'\) 所以很简单,我们的答案就是 \(\frac{n!}{\prod\limits_{i=1}^nb_i}\)

posted @ 2022-07-25 22:47  Mercury_City  阅读(60)  评论(0编辑  收藏  举报