排列组合中不需要考虑组合数的情形 [大三四八九月实习]
2013-08-08 16:33
253 查看
在计算排列组合数时,被排列元素在全排列[ 全被拿去排列 ]情况下不需要考虑被排列元素的组合数,如将3门考试安排在5天中,每天安排一门考试的安排数。按照选排列的思想,此时的安排数直接为P(5, 3)=60。
但是为什么不是这样子[ 还是受乘法原理的启示,笑~ ],考虑被排元素的组合数的过程:
第一步:在3门考试中选1门[ C(3, 1) ],然后排在5天之中[ C( 5, 1) ]
第二部:在剩余的两门考试中选1门[ C(2, 1) ],然后排列在剩余的4天之中 [ C(4, 1) ]
第三步:同理为C(1, 1) * C(3, 1)
得到总的排列数N= C(3, 1) * C( 5, 1)*C(2, 1)*C(4, 1)*C(1, 1) *C(3, 1)=360
这个过程体现了被排元素有自己的组合数[ 即每次都会以组合的思想先挑一个元素出来 ]。但明显的这又是不对的答案[ 还记得高考的标准答案是第一个,这是绝对的 ]。
为什么此时被排列元素在被全选去排列的情况下不需要考虑被排列元素的组合数?
1.从排列平台[ 5天 ]的组合到被排列元素[ 3门考试 ]的排列角度来看
按照乘法原理,可以分两步来完成整个事件:
(1)从5天选3天出来,共有C(5, 3)种选法
(2)3门考试在这3天中的全排列[ 去掉3门考试拿到3天里进行排列的隔阂,否则又该变排列元素有序的情况了 ]。即在5天组合出3天之后,就只剩下3门考试全排列的问题了[ 将3门考试的名字写到这3天中和这3门考试自身在已有的3个位置之上进行排列是等价的 ]。
这样共有的排列数N = C(5, 3)*P(3,3)=60种。
但是3门考试安排在3天中依然可以考虑3门考试的组合数!从而被我们算成是N = C(3, 1) * C(3, 1)* C(2, 1)* C(2, 1)* C(1, 1)* C(1, 1),从而又得出排列数N =360种。要计算还不能避开乘法原理那一步[对被排列元素使用组合数
] ,还得出现被排列元素有无组合数的问题 ]。
…….
2.从计算排列数对象的角度思考
胡思乱想到的一个例子:
两个相同的球放在只有位置空间不一样的两个位置之上时,大伙都知道只有一种情况[ 我猜小学生凭实际感觉都能答出来]。这就说明了一个事实:我们所针对的排列数对象是“位置”。当两个相同的球随机的放在两个位置之上时是一种情况,然后无论怎么交换两个球的位置在我们排列情况都没有变化,因为对于位置来说,在它之上的还是一样的球。但是对于球来说呢,显然两个球交换了位置之后就与先前的排列情况不一样,对于球的排列来说就变成了两种情况[ 从这里也可以看出,也可以视为是排列平台无组合数
]。所以咱们日常题目中所描述的求排列组合数的参考对象是指排列平台,跟排列元素无关。
所以,咱们的排列组合问题可视为是已经将所有的元素放在了排列平台之上了,然后让排列平台自己折腾出所有的不同的排列数[看题目要求,此次出现这个疑问就是题目没有审核清楚,再者没有搞清楚排列组合的要解决对应实际问题的思想
]。在用乘法原理进行排列计数的时候要排除被排元素的组合数[ 全部被选去排列的情况 ]
3.被排元素有组合出现的情况
这样子的一个例子就能体现了:
从3门不同的选修课中选2门放在5天之中考学生们的所有情况。
(1)首先是从3门考试中选两门出来的所有组合数:N1= C(3, 2) = 3
(2)然后从5天选中两天来安排 的组合数:N2 = C(5, 2) = 10
(3)最后将两门考试在两天之中进行全排列:N3 = P(2,2)=2
或者将(2)、(3)步骤整成选排列的思想:N23 = P(5,2) = 20
所以安排考试的所有方法N =(N1 * N2*N3)或者 (N1*N23)=30种。
此次笔记记录完毕。
但是为什么不是这样子[ 还是受乘法原理的启示,笑~ ],考虑被排元素的组合数的过程:
第一步:在3门考试中选1门[ C(3, 1) ],然后排在5天之中[ C( 5, 1) ]
第二部:在剩余的两门考试中选1门[ C(2, 1) ],然后排列在剩余的4天之中 [ C(4, 1) ]
第三步:同理为C(1, 1) * C(3, 1)
得到总的排列数N= C(3, 1) * C( 5, 1)*C(2, 1)*C(4, 1)*C(1, 1) *C(3, 1)=360
这个过程体现了被排元素有自己的组合数[ 即每次都会以组合的思想先挑一个元素出来 ]。但明显的这又是不对的答案[ 还记得高考的标准答案是第一个,这是绝对的 ]。
为什么此时被排列元素在被全选去排列的情况下不需要考虑被排列元素的组合数?
1.从排列平台[ 5天 ]的组合到被排列元素[ 3门考试 ]的排列角度来看
按照乘法原理,可以分两步来完成整个事件:
(1)从5天选3天出来,共有C(5, 3)种选法
(2)3门考试在这3天中的全排列[ 去掉3门考试拿到3天里进行排列的隔阂,否则又该变排列元素有序的情况了 ]。即在5天组合出3天之后,就只剩下3门考试全排列的问题了[ 将3门考试的名字写到这3天中和这3门考试自身在已有的3个位置之上进行排列是等价的 ]。
这样共有的排列数N = C(5, 3)*P(3,3)=60种。
但是3门考试安排在3天中依然可以考虑3门考试的组合数!从而被我们算成是N = C(3, 1) * C(3, 1)* C(2, 1)* C(2, 1)* C(1, 1)* C(1, 1),从而又得出排列数N =360种。要计算还不能避开乘法原理那一步[对被排列元素使用组合数
] ,还得出现被排列元素有无组合数的问题 ]。
…….
2.从计算排列数对象的角度思考
胡思乱想到的一个例子:
两个相同的球放在只有位置空间不一样的两个位置之上时,大伙都知道只有一种情况[ 我猜小学生凭实际感觉都能答出来]。这就说明了一个事实:我们所针对的排列数对象是“位置”。当两个相同的球随机的放在两个位置之上时是一种情况,然后无论怎么交换两个球的位置在我们排列情况都没有变化,因为对于位置来说,在它之上的还是一样的球。但是对于球来说呢,显然两个球交换了位置之后就与先前的排列情况不一样,对于球的排列来说就变成了两种情况[ 从这里也可以看出,也可以视为是排列平台无组合数
]。所以咱们日常题目中所描述的求排列组合数的参考对象是指排列平台,跟排列元素无关。
所以,咱们的排列组合问题可视为是已经将所有的元素放在了排列平台之上了,然后让排列平台自己折腾出所有的不同的排列数[看题目要求,此次出现这个疑问就是题目没有审核清楚,再者没有搞清楚排列组合的要解决对应实际问题的思想
]。在用乘法原理进行排列计数的时候要排除被排元素的组合数[ 全部被选去排列的情况 ]
3.被排元素有组合出现的情况
这样子的一个例子就能体现了:
从3门不同的选修课中选2门放在5天之中考学生们的所有情况。
(1)首先是从3门考试中选两门出来的所有组合数:N1= C(3, 2) = 3
(2)然后从5天选中两天来安排 的组合数:N2 = C(5, 2) = 10
(3)最后将两门考试在两天之中进行全排列:N3 = P(2,2)=2
或者将(2)、(3)步骤整成选排列的思想:N23 = P(5,2) = 20
所以安排考试的所有方法N =(N1 * N2*N3)或者 (N1*N23)=30种。
此次笔记记录完毕。
相关文章推荐
- [Math] 排列组合 笔记 [大三四八九月实习]
- 排列组合应用于计数的思路 [大三四八九月实习]
- BOOST 在windows的编译及配置(VS2010) [大三四八九月实习]
- C++ Boost库 asio同步/异步模式[ 定时器来体现 ] [大三四八九月实习]
- 实习中的一总结 [大三四八九月实习]
- VMWare Debian GNU/Linux 图形界面安装 [大三四八九月实习]
- 第一个月实习总结 [大三四八九月实习]
- VMWare Debian Linux 图形界面 vmware tools 安装 [大三四八九月实习]
- BOOST timer库应用[timer库1] [大三四八九月实习]
- C++ BOOST库 条件变量[多线程通信]机制 [大三四八九月实习]
- 第二月实习总结 [大三四八九月实习]
- 多线程执行 [大三四八九月实习]
- boost库 bind/function的使用 [大三四八九月实习]
- TinyXML + VS2010项目配置 使用TinyXML类创建XML文件 [类中防内存泄露] [大三四八九月实习]
- Debian Linux下编译C++源程序 [大三四八九月实习]
- malloc/free和new/delete [大三四八九月实习]
- TinyXML读取XML文件 [大三四八九月实习]
- NOJ 1430 组合的输出 (组合数的排列,两种方法)
- XML文件的基本结构 [大三四八九月实习]
- hdu 4465 Candy 组合数(快速排列组合)