相邻组合问题和分组组合问题

abstract

  • 向量组合问题和分组问题

相邻组合问题

捆绑法和插入法

  • 在组合数学中,捆绑法和插入法是排列组合的推广,主要用于解决相邻组合不相邻组合的问题。

例子🎈

  • 若有A,B,C,D,E五个人排队,要求A和B两个人必须站在相邻位置,则有多少种排队方法?

    • 将A和B两个人捆绑,对(A,B),C,D,E进行排列,
      • (A,B)内部排列有 P 2 2 P_2^2 P22种排法,记 X = ( A , B ) X=(A,B) X=(A,B)
      • X,C,D,E有 P 4 4 = 4 ! = 24 P_4^4=4!=24 P44=4!=24种排法
      • 由乘法原理,共有 S = P 2 2 × P 4 4 S=P_2^2\times P_4^4 S=P22×P44= 48 48 48
  • 若有A,B,C,D,E五个人排队,要求A和B两个人必须不站在一起,则有多少种排队方法?

    • 方法1:使用互补(互斥)法配合捆绑法所有排法减去相邻排法即得不相邻排法, P 5 5 − P 2 2 × P 4 4 = 5 ! − 2 ! 4 ! = 72 P_5^5-P_2^2\times P_4^4=5!-2!4!=72 P55P22×P44=5!2!4!=72

    • 方法2:使用插空法,将A,B插入安全位置($X$Y$Z$),

      • 其中X,Y,Z表示可以相邻的 C , D , E C,D,E C,D,E的某一种排列
      • A , B A,B A,B插入$所指的位子都能够满足 A , B A,B A,B不相邻的要求
      • A , B A,B A,B间又可以产生 A 2 2 A_2^2 A22种排列
      • 由乘法原理有 A 3 3 C 4 2 A 2 2 = 6 × 6 × 2 = 72 A_3^3C_4^2A_2^2=6\times{6}\times2=72 A33C42A22=6×6×2=72

分组问题

  • 排列组合问题通常可以分为两类:
    • 如果问题本身是有序的,往往容易直接求解
    • 如果问题包含了无序部分,可以先按照有序的做法进行计算,然后再去出重复的倍数即可
  • 对于一般的分组问题,将问题细分为2个层次(假设我们要将一批互不相同的元素分配成k个组)
    1. 一个是元素组队问题(队伍内部元素没有顺序,队伍之间也不区分顺序)
    2. 另一个是组完队后个组分配到不同目标问题(队伍内部没有顺序,但是队伍之间要区分顺序)
  • 其中问题2是我们很熟悉的乘法原理,只需要知道每个组的人数 n 1 , ⋯   , n k n_1,\cdots,n_k n1,,nk,利用组合数,可得
    • 第1个组有 ( n n 1 ) \binom{n}{n_1} (n1n)种组队方法
    • 第2个组有 ( n − ∑ j = 1 1 n j n 2 ) \binom{n-\sum_{j=1}^{1}n_j}{n_2} (n2nj=11nj)= ( n − n 1 n 2 ) \binom{n-n_1}{n_2} (n2nn1)种方法
    • ⋮ \vdots
    • i i i个组有 ( n − ∑ j = 0 i − 1 n j n i ) \binom{n-\sum_{j=0}^{i-1}n_j}{n_i} (ninj=0i1nj)种方法
    • 因此给 k k k个组分配元素的方法数是分配各个组方法数的乘积
  • 而问题1是队伍间无序的,意味着 S 0 S_0 S0={{1,2},{3,4},{5,6}}和 T 0 T_0 T0={{3,4},{1,2},{5,6}}是同一个分组,不可重复计数
    • 在问题1种,元素{1,2}和{3,4}分别去目标 A 1 , A 2 A_1,A_2 A1,A2是一种方法,分别去 A 2 , A 1 A_2,A_1 A2,A1则是另一种方法
    • 然而问题2仅考虑组队的方法数,不考虑将组队分配到具体的目标,因此如果直接使用乘法原理和组合数公式,则是将队伍间顺序一同考虑进来,导致重复计数;
    • 幸运的是,这种重复是有规律性的,我们可以通过去除重复来从有序解变为所需的无序解
    • 将问题2种的结果除以合适的去重因子,即可得到不重复的问题1的答案
    • 若某个分组方案中有 r r r个组的组内成员数一样,那么重复因子为 A r r A_{r}^{r} Arr,对于复杂分组,可能有多个重复因子

均匀分组

最简单的均匀分组

  • n个人,均分成n个组,有几种分法?
    • 显然只有一种分法("每组一个人"这一种分组方法): A n n A n n = 1 \frac{A_n^n}{A_n^n}=1 AnnAnn=1
    • 这种计算方法假设n个组之间有顺序之分,再除以重复的倍数得到结果
    • n个人,均分成n个组,每组至少一个人,执行n个不同任务有几方法
      • A n n A_n^n Ann= ( n 1 ) ⋯ ( 1 1 ) \binom{n}{1}\cdots\binom{1}{1} (1n)(11)
  • 6个人,均分为3组,有多少种方法?
    • 本问题是一个无序组合问题:
      • 分组之间不关系顺序
      • 组内成员不关心顺序
      • 只关心组内成员的构成
  • 解决无序组合问题可以建立合适的有序排列模型(直接乘法原理)再去序的方式间接解决无序的组合问题
    • 设三个组的编号分别为 1 , 2 , 3 1,2,3 1,2,3,并设它们的人员组合分别是 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3,并且它们是有序的
      • 根据组合数计数原理,设6个人编号为1,2,3,4,5,6,从中选两个人组成一组,所有的可能有 ( 6 2 ) \binom{6}{2} (26)= 15 15 15
      • 记所有可能的二人组的集合为 S S S,其中包含15个元素,且 A i ∈ S , i = 1 , 2 , 3 A_i\in{S},i=1,2,3 AiS,i=1,2,3
    • 划分第一组两个人时有 ( 6 2 ) \binom{6}{2} (26)种可能,划分第二组时有 ( 4 2 ) \binom{4}{2} (24)种可能,划分第三组时有 ( 2 2 ) \binom{2}{2} (22)种可能
    • 根据乘法原理(解决有序排列问题), A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3这3个组将产生 C 6 2 C 4 2 C 2 2 C_6^2C_4^2C_2^2 C62C42C22种可能
    • 例如 A 1 , A 2 , A 3 A_1,A_2,A_3 A1,A2,A3的一种可能的取值是; A 1 A_1 A1={1,2}, A 2 A_2 A2={3,4}, A 3 A_3 A3={5,6},将这个方案记为 S 0 S_0 S0={{1,2},{3,4},{5,6}}
    • S 0 S_0 S0中包含的3个二元组元素,它们的排列有 A 3 3 = 6 A_3^3=6 A33=6种,这6种排列应当视为同一种分组方案
    • 因此,取出排列组间排列带来的重复计数,需要除以均分的组数的全排列,即 C 6 2 C 4 2 C 2 2 A 3 3 \frac{C_6^2C_4^2C_2^2}{A_3^3} A33C62C42C22= 15 15 15

均匀分组问题模型

  • n = k m n=km n=km个元素均分为 k k k组(每组 m m m个),有多少种方法?

  • 解:

    • ∏ i = 0 k − 1 C n − m i m A k k \frac{\prod_{i=0}^{k-1}{C_{n-mi}^{m}}}{A_k^k} Akki=0k1Cnmim
  • 例如,6人分3组, k = 3 , m = 6 / 3 = 2 k=3,m=6/3=2 k=3,m=6/3=2

    • ∏ i = 0 3 − 1 C 6 − 2 i 2 A 3 3 = C 6 2 C 4 2 C 2 2 6 = 15 \frac{\prod_{i=0}^{3-1}{C_{6-2i}^2}}{A_3^3} =\frac{C_6^2C_4^2C_2^2}{6}=15 A33i=031C62i2=6C62C42C22=15

均匀但组间有序分组模型

  • n = k m n=km n=km个元素均分为 k k k组(每组 m m m个),依次分配给任务 A 1 , ⋯   , A n A_1,\cdots,A_n A1,,An,有多少种方法?
  • ∏ i = 0 k − 1 C n − m i m \prod_{i=0}^{k-1}{C_{n-mi}^{m}} i=0k1Cnmim

不均匀分组

  • 将6个人分成3个组,各有 3 , 2 , 1 3,2,1 3,2,1个人,有多少种方法?
    • 根据组合数和乘法原理,有 C 6 3 C 3 2 C 1 1 C_6^3C_3^2C_1^1 C63C32C11= 60 60 60
    • 由于3个组每个组的人数互不相等,因此不需要去序

局部均匀分组

  • n个元素作局部均匀分组,分为 s s s= p + t p+t p+t,其中

    • p p p个组的元素数目: n 1 = n 2 = ⋯ = n p n_1=n_2=\cdots=n_p n1=n2==np= m m m,其余组元素各不相同,不妨设为 r j r_j rj个, m ≠ r j ; j = 1 , 2 , ⋯   , q m\neq{r_j};j=1,2,\cdots,q m=rj;j=1,2,,q

    • 均匀部分:

      • p p p个元素相同的组有 ∏ i = 0 p − 1 C n − m i m \prod_{i=0}^{p-1}C_{n-mi}^{m} i=0p1Cnmim可能,其中包含了一个重复倍数 A p p A_p^p App
    • 其他均匀部分:

      • 甚于分组可能还包含了一个局部均匀分组问题,递归的做下去,直到剩余的分组(设有 t t t个组)元素数量互不相等
    • 严格不均匀部分:

      • 后剩余的 t t t个组仍然按照分组和连乘的方式计算,但是不需要除以重复倍数(因为各组的元素数目不同)

  • 10个不同的人,需要分为6个组,其中有3个组每组2个人,另外2组每组1个人;还有一个组2个人: ( C 10 2 C 8 2 C 6 2 ) ( C 4 1 C 3 1 ) C 2 2 A 3 3 A 2 2 \frac{(C_{10}^2C_8^2C_6^2)(C_4^1C_3^1)C_2^2}{A_3^3A_2^2} A33A22(C102C82C62)(C41C31)C22

综合

  • 6个人分成3组,每组至少1个人,有多少种分法?
    • 分为3类情况
    • 6=1+1+4
    • 6=1+2+3
    • 6=2+2+2
    • 第1类是局部均匀分组
      • C 6 1 C 5 1 C 4 4 A 2 2 = 15 \frac{C_6^1C_5^1C_4^4}{A_2^2}=15 A22C61C51C44=15
    • 第2类是不均匀分组
      • C 6 1 C 5 2 C 3 3 C_6^1C_5^2C_3^3 C61C52C33=60
    • 第3类是均匀分组:
      • C 6 2 C 4 2 C 2 2 A 3 3 \frac{C_6^2C_4^2C_2^2}{A_3^3} A33C62C42C22=15
    • 由加法原理合计有 90 90 90
  • 注意和隔板法问题相区别

例题

  • 某交通岗有3人,从每周7天中,每天安排1人值班,每人至少值班2天,不同的排法种数(D)?

    A:5040

    B:1260

    C:210

    D:630

  • 解:由于每个人至少值两天班,我们将7天拆分为 7 = ∑ i = 1 3 x i , x i ⩾ 2 7=\sum_{i=1}^{3}{x_i},x_i\geqslant{2} 7=i=13xi,xi2,其中 x i x_i xi是分配给某个值班人员的天数

    • 本例中, 7 % 2 = 3 ⋯ 1 7\%2=3\cdots1 7%2=31,可见7可以分解为 2 + 2 + ( 2 + 1 ) 2+2+(2+1) 2+2+(2+1),即{2,2,3}
    • 将7天中的2天分配给员工1有 C 7 2 C_7^2 C72种情况
    • 将剩余的 5 5 5天中的2天分配给员工2有 C 5 2 C_5^2 C52种情况
    • 将剩余的3天分全部分配给第3个员工有 C 3 3 C_3^3 C33种情况
    • 注意到第1个员工和第2个员工分配到的天数是相同的,
      • 意味着可以对调两个员工的值班日期从而产生新的安排方法
      • 员工1,2,3的值日天数的不同组合可能有
        1. {2,2,3}
        2. {2,3,2}
        3. {3,2,2}
      • 上述3种分割方案都可以产生 C 7 2 C 5 2 C 3 3 C_7^2C_5^2C_3^3 C72C52C33种情况(3个集合都属于允许元素重复的特殊集合:多重集)
      • 所以共有 3 C 7 2 C 5 2 C 3 3 3C_7^2C_5^2C_3^3 3C72C52C33种方案
      • 分割方案还可以不列举出来,仅通过 A 3 3 A 2 2 = 3 \frac{A_3^3}{A_2^2}=3 A22A33=3来计算(不尽相异物)这里将包含{2,2,3}的多重集中的两个2作区别: 2 1 , 2 2 2_1,2_2 21,22
      • 2 1 , 2 2 {2_1,2_2} 21,22做排列(有 A 2 2 A_2^2 A22种),不改变多重集,例如{ 2 1 , 2 2 , 3 2_1,2_2,3 21,22,3}={ 2 2 , 2 1 , 3 2_2,2_1,3 22,21,3}
  • C 7 2 C 5 2 C 3 3 A 2 2 A 3 3 \frac{C_{7}^{2}C_{5}^{2}C_3^3}{A_{2}^{2}}A_{3}^{3} A22C72C52C33A33=630

posted @   xuchaoxin1375  阅读(19)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-07-26 有一串打乱的成绩,现要求你把他们从低到高排列。
2022-07-26 现有一串已按分数高低记录好的成绩, 现在要求你在不打乱原来顺序的基础上 插入一部分数据、删除一部分数据,并输出。
点击右上角即可分享
微信分享提示