本文主要是介绍数学排列组合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我突然想发一篇文章(别问我为什么[doge])
排列组合大家都听过吧,今天的主角就是排列组合。
废话不多说,直接开始
先来看几道题目:
:由1,2,3,4组成不同的三位数有几种?
:有四个人,每两个人都要握手一次,要握几次手?
排列组合公式部分
排列部分
第一道是排列问题,其实是想让你求1234四个数中选三个进行排列,有几种排列?
题目解答
我们先来思考一下第一个数字选什么,有几种可能?显然,第一位有4种可能,因为四个数字都没有被选过且都可以选择。
第二位有种可能,因为第一位选了一个数字,所以只有3种可能。
第三位有种可能,第一和第二位选了两个数字之后只剩下了2个数字。
总共有种可能。
至此,整道题目就做完了。
推出排列公式
我们不妨推想一下:排列又没有公式呢?如果有,那是什么呢?
如果是从n个选项里选择m个进行排列,一般情况下第一位有n种可能性,第二位有m种可能性,直到第m位有种可能性。总共有种可能性
我们把这个公式进行化简,先把它写成的形式,
可以发现,分子是的阶乘,分母是的阶乘,所以这个式子可以变为 。
其中,代表的是从n个数字中选择n个进行排列的总数。
所以第一道题的答案就出来了:
:
组合部分
第二道是组合问题,其实是想让你求四个人中选两个进行组合,有几种组合?
题目解答&推出公式
我们来想一下,排列和组合的区别是什么?其实排列注重顺序,而组合不管顺序。
观察可以发现排列数是组合数的两倍
为什么呢?
实际上,如果有n个数,抽出m个进行组合,组合数 * m个数的排列方案数 = 排列数
比如4个数抽3个,则
其中代表的是从n个数字中选择n个进行组合的总数。
原理:排列有多种方案,其中的一些方案是重复的,而组合中这些方案就变成一种方案了
那如何知道重叠的数量呢?推算呗!
呜呜呜,手都要废了
推算可得出,在n个数选m个数中,组合数*=排列数
再联系排列的公式可以算出
最终的公式为
排列组合技巧部分
技巧一:整体捆绑法
我们来思考这样一道题:n名同学站成一排,m名同学要站在一起,有几种排列?
这就要用到整体捆绑法了。m名同学要站在一起,则可以将其变成一个人,有种排列。但是,这m名同学的顺序也是会变的,所以要乘上
公式就是
技巧二:选空插入法
还是来思考一道题:n名同学站在一起,其中m名同学不站在一起,有几种排列?
面对与上一题截然不同的题目要如何解决呢?这就要用到选空插入法了。
我们将其他的人先排序,就是,而其余的人呢?这就要用一种巧妙的思路了,
如下,设有七个人,其中两个人不站在一起,则将其余五个人的排列一下,再将那两个人插入空隙中,有个空位,所以那两个人的所有排列就是,推导成通用公式是
技巧三:总体排除法
一道题:n名同学中选m人,其中k人中至少有一人被选上,有几种组合?
这道题的方法讲的通俗一点就是排除法,先算出一共的方案数
再减去没有含有这k人的组合数
公式就是
技巧四:优先考虑法
题目:n名队员中有m名主力队员,派k名队员参加比赛,有几种较好的排列(默认m<k)
由于是要较好的排列,所以先算m名主力的排列,再算剩下的人的排列数
最后相乘得出公式为
技巧五:分类讨论法
由0,1,2,3,4,5组成没有重复数字的六位数,其中个位数字小于十位数字的共有几种排列?
这题用排除法也可以做,这里为了展示分类讨论的方法,就用分类讨论了。已知要个位小于十位,所以个位只有01234五种选择
再给它分类讨论:个位是0有种排列;个位是1有种排列;个位是2有种排列;个位是3有种排列;个位是4有种排列。
合起来就是有种排列
答案是360种。
技巧六:先选后排法
有n种菜选m种,种在m块土地上,有几种排列?
这道题比较简单,先算n中选m的组合数,再进行排列。
直接给答案:
技巧七:挡板分隔法
这个技巧比较难,先看题目:把n本书发给1.2.3~~~n号阅览室,每个阅览室分得的书不得小于其编号,有几种分配方法?
一般先看会感到很懵逼,但是看一下这张图片就明白了:
先设有13本书。向每个阅览室放入编号-1本书,之后还剩7本书,然后就可以用挡板分隔法了:
可以看到剩下的7本书中间有6个地方可以插入隔板,而隔板有3个便可以把这些书分为4部分,所以排列数有,尝试推广到原先的题目:设,则有种排列。
其他:
在下面
彩蛋!!!
排列组合练习题及答案 - 百度文库 (baidu.com)
这篇关于数学排列组合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!