多重集合的排列与组合

原创 2015年07月07日 20:55:55

《Introductory Combinatorics Fifth Edition》学习笔记:

多重集合的排列:

设S是有k种不同类型对象的多重集合,每个元素都有无限的重复数。那么s的r排列数目是k^r.

例子:最多有4位的3进制数(3元数)的个数是多少?
分析:3^4=81。

设s是多重集合,有k种类型的对象,且每种类型的有限重复数是n1,n2,……,nk。s的大小是n=n1+n2+n3+……+nk。那么s的排列数目等于:result=n!/(n1!*n2!*……*nk!)

例子:词MISSISSIPPI中字母的排列数是?
分析:词含有的字母总个数是11,M:1,I:4,S:4,P:2。所以result=11!/(1*4!*4!*2!).

设n是正整数,并设n1,n2,……,nk是正整数且n=n1+n2+……+nk。把所有的对象划分成k个标有不同标签的盒子,且盒子们分别对应n1,n2,……,nk。那么划分的总方案数是: n!/(n1!*n2!*……nk!)。假如这些标签都是相同的或者说没有标签,并且n1=n2=……=nk,那么总数是n!/[k!*n1*n2*……*nk!].

例子:3种类型9个对象的多重集合s={3*a,2*b,4*c}。求s中8排列的个数?
分析:要排列的数目和对象的总个数不相同。分成3种情况讨论,s1={2a,2b,4c},s1=8!/(2!*2!*4!)=420; s2={3a,b,4c},s2=8!/(3!*1*4!)=280; s3={3a,2b,3c},s3=8!/(3!*2!*3!)=560. result=s1+s2+s3.

多重集合的组合:

通过一个例子来初步认识:设s={2a,1b,3c},那么s的3组合是:{2a,b},{2a,c},{a,b,c},{b,2c},{a,2c},{3c}。

设S是有k种类型对象的多重集合,每种元素均有无限的重复数。那么S的r组合的个数等于:C(r+k-1,r).
证明:S任何r组合一定呈现{x1*a1,x2*a2,……,xk*ak}的组合形式。x1+x2+……+xk=r.先将x系列数字分割成k部分,这样有了r+k-1个元素(要插入k-1个隔板,可以看做值为0的元素),用这些元素组成的一个r排列就是解。那么这样的排列个数是(r+k-1)!/(k-1)!/r!(除以同类型值的排列),即C(r+k-1,r)。

问题:一家面包店有8种炸面包圈。如果一盒内装有一打(12个)炸面包圈,那么能够装配多少类型的面包圈盒?
分析:和上面的知识点一样,12个x分成8份,然后选出12排列。result=C(12+8-1,12)。
问题:继续上面的问题,如果8种面包圈每一种都需要至少一个,那么结果的面包盒有多少个?
分析:变量代换x'=x-1,则8个x'的和是8x-8=12-8=4,result=C(4+8-1,4)。

组合问题中的每种类型的对象出现次数的下界可以通过变量代换来解决。

问题:x1+x2+x3+x4=20的整数解的个数是多少?其中x1>=3,x2>=1,x3>=0,x4>=5.
分析:y1=x1-3,y2=x2-1,y3=x3,y4=x4-5. y1+y2+y3+y4=20-9=11.result=C(11+4-1,11)=364.


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

KAGGLE

原文地址: 第一次参加Kaggle拿银总结 http://scarletpan.github.io/summary-of-get-a-silver-medal-in-kaggle/ Kaggle...
  • roslei
  • roslei
  • 2017年08月14日 14:26
  • 155

多重集合的排列和组合问题

一、先来回顾一下无重复元素的排列组合定义 排列,英文名为Permutation,是指从某元素集合中取出指定个数的元素进行排序 组合,英文名为Combination,是指从某元素集合中仅仅取...

xdoj_1057: 卡尔的技能【多重集合的组合】【Lucas定理】

传送门:http://acm.xidian.edu.cn/problem.php?id=1057 题目是早已见过了的,不过当时才只是刚刚接触ACM不久,再者这题ac人数并不是很多,于是就直接搁置一旁了...
  • wy_2016
  • wy_2016
  • 2016年10月11日 22:51
  • 335

多重popwind组合嵌套使用

  • 2015年10月23日 17:05
  • 659KB
  • 下载

0-1 多重 组合背包的自学之路(不断更新中)

01背包: 01背包(ZeroOnePack): 有N件物品和一个容量为V的背包。(每种物品均只有一件)第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 ...

POJ3046 多重集组合数 dp+前缀和优化+滚动数组 (包含类似优化的小总结)

题意 T种数,每种有a[t]个,总共有A个数。问你取其中X个数作为子集,有多少种这样的子集。计算L...

(经典)POJ-3046 多重集组合数

题目大意:蚂蚁牙黑,蚂蚁牙红:有A只蚂蚁,来自T个家族,分别记为ant[i]个。同一个家族的蚂蚁长得一样,但是不同家族的蚂蚁牙齿颜色不同。任取n只蚂蚁(S 题目链接:点击打开链接 分析: 多...
  • AC_hell
  • AC_hell
  • 2016年05月14日 14:23
  • 368

POJ 3046 Ant Counting (dp 多重集组合数)

differ from the White Book

Generic design | 多重继承在设计组合上的失败以及Templates带来的曙光

Templates带来的曙光 关于多继承,容易导致一种想法:多重继承可能有助于处理【设计组合】--------通过使用少量的选择后的base classes,便可制作出同时具有多种特性以及能力的物件。...

HDU - 1261 字串数 多重集合的排列问题+高精度

题目链接 题意: 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA". ,给定若干字母和它们相应的个数, 计算一共可以组成多少个不同的字符串. 思路:   这个算是一个水...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多重集合的排列与组合
举报原因:
原因补充:

(最多只允许输入30个字)