【组合数学】排列组合 ( 多重集排列 | 多重集全排列 | 多重集非全排列 所有元素重复度大于排列数 | 多重集非全排列 某些元素重复度小于排列数 )

2023-03-28 18:14:47 浏览数 (1)

文章目录

  • 一、多重集
  • 二、多重集全排列
  • 三、多重集全排列示例
  • 三、多重集非全排列 1 所有元素重复度大于排列数 (
n_i geq r

)

  • 四、多重集非全排列 2 某些元素重复度小于排列数 (
n_i leq r

)

排列组合参考博客 :

  • 【组合数学】基本计数原则 ( 加法原则 | 乘法原则 )
  • 【组合数学】集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | 二项式定理 )
  • 【组合数学】排列组合 ( 排列组合内容概要 | 选取问题 | 集合排列 | 集合组合 )
  • 【组合数学】排列组合 ( 排列组合示例 )

一、多重集


多重集表示 :

S = { n_1 cdot a_1 , n_2 cdot a_2 , cdots , n_k cdot a_k } , 0 leq n_i leq infty
  • 元素种类 : 多重集中含有
k

种不同的元素 ,

  • 元素表示 : 每个元素表示为
a_1 , a_2 , cdots , a_k

,

  • 元素个数 : 每个元素出现的次数是
n_1, n_2, cdots , n_k

,

  • 元素个数取值 :
n_i

的取值要求是 大于

0

, 小于正无穷

infty

;

二、多重集全排列


多重集 :

S = { n_1 cdot a_1 , n_2 cdot a_2 , cdots , n_k cdot a_k } , 0 leq n_i leq infty

★ 全排列 :

r = n_1 n_2 cdots n_k = n
N = cfrac{n!}{n_1! n_2! cdots n_k!}

多重集的全排列数是 元素总数阶乘 , 除以 所有重复度的阶乘 ;

下面是推导过程

k

种元素 ,

放置元素

a_1

: 在排列中先放第一种元素

a_1

, 该元素有

n_1

个 ,

n

个位置中选出

n_1

个 位置 , 有

C(n, n_1)

种方法 ;

C(n, n_1) = cfrac{n!}{(n-n_1) ! n_1!}

放置元素

a_2

: 放置好

n_1

之后放置第二种元素

a_2

, 该元素有

n_2

个 , 此时还有

n-n_1

个空位 , 从

n-1

个位置中选择

n_2

个位置有

C(n-n_1 , n_2)

种方法 ;

C(n - n_1, n_2) = cfrac{(n-n_1)!}{(n-n_1 - n_2) ! n_2!}
vdots

放置元素

a_k

: 放置最后一个元素

a_k

, 该元素有

n_k

个 , 此时还有

n-n_1- cdots -n_{k-1}

个空位 , 从

n-n_1- cdots -n_{k-1}

个位置中选择

n_k

个位置有

C(n-n_1- cdots -n_{k-1} , n_k)

种方法 ;

C(n-n_1- cdots -n_{k-1} , n_k) = cfrac{(n-n_1- cdots -n_{k-1})!}{(n-n_1- cdots -n_{k-1} - n_k) ! n_k!}

乘法法则 : 最后根据乘法法则 , 将上述每个放置方法乘起来 , 就得到最终的结果 , 阶乘看起来很复杂 , 但是 阶乘选项如

(n-n_1- cdots -n_{k-1})!

都可以约掉 , 最终结果如下 :

begin{array}{lcl} N & = & C(n, n_1) C(n - n_1, n_2) C(n-n_1- cdots -n_{k-1} , n_k) \\ & = & cfrac{n!}{(n-n_1) ! n_1!} times cfrac{(n-n_1)!} {(n-n_1 - n_2) ! n_2!} times cfrac{(n-n_1- cdots -n_{k-1})!}{(n-n_1- cdots -n_{k-1} - n_k) ! n_k!} 约掉部分阶乘 \\ &=& cfrac{n!}{n_1! n_2! cdots n_k!} end{array}

三、多重集全排列示例


求多重集

S={ 3 cdot a , 2 cdot b , 1 cdot c }

的全排列 ?

上述多重集元素总个数是

n = 3 2 1 = 6

;

全排列个数是 :

N = cfrac{6!}{3! times 2! times 1!} = cfrac{6 times 5 times 4 times 3 times 2 times 1}{( 3 times 2 times 1 ) times ( 2 times 1 ) times (1 times 1)} = 60

三、多重集非全排列 1 所有元素重复度大于排列数 (

n_i geq r

)


多重集 :

S = { n_1 cdot a_1 , n_2 cdot a_2 , cdots , n_k cdot a_k } , 0 leq n_i leq infty

★ 非全排列情况

1

:

r leq n_i

, 注意这里的

r

要 小于等于 最小的

n_i

;

N = k^r

推导过程 :

在上述条件下 ,

r

个位置 ,

每个位置的元素都有

k

种选择 ,

根据乘法法则 , 总的选择个数是

begin{matrix} underbrace{ k times k times cdots times k } \ r 个 k end{matrix}

,

r^k

;

四、多重集非全排列 2 某些元素重复度小于排列数 (

n_i leq r

)


上述情况只适用于重复度足够大的情况 , 即 每个元素的重复度都大于选取个数 ,

r leq n_i

如果 有一个元素的重复度小于选取个数 ,

r geq n_i

,

S={ 3 cdot a , 2 cdot b , 1 cdot c }

多重集的三排列 , 就无法使用公式计算了 ,

没有公式可以计算 , 但是可以 使用 包含排斥原理 , 生成函数 进行计算 ;

0 人点赞