排列组合是一个神奇的东西在我看来。只要一个公式,一个逻辑,就可以解决复杂多样的问题。
在组合数学中,隔板法(又叫插空法)是排列组合的推广,主要用于解决不相邻组合与追加排列的问题。
例一:
给你10个球,让你放在3个箱子里,问你有多少种摆法?
这种问题咋一看和排列组合没有半毛钱关系,其实,通过画图,就知道了。
其实挡板分割的三个部分,就是每个箱子拥有的球数。
这样的问题有一个模板:
给你n个球,让你放在k个箱子,问你有多少种摆法。
问题可以转化为:给你(n-1)个间隔,让你往间隔里面放(k-1)隔板,求方案数。
这样问题就迎刃而解了。
C(n-1,k-1)就是所求。
例二:
给你十个球,让你放在3个篮子里,可以有篮子为空,问多少种摆法?
这道题难度就大了很多,“可以为空”,我们还是用排列组合解。
怎么转化题目?其实我们可以把为空看成不为空,只需要开始在每个篮子都加一个球就可以了,其他就跟例一的解法一样。
例三:
将20个相同的小球放入编号分别为1,2,3,4的四个盒子中,要求每个盒子中的球数不少于它的编号数,求放法总数。
其实这道题还是类似的题目。我们在例二考虑了增加球数,这里可以减少球数吗?
当然的
我们先给1,2,3,4号篮子分别放0,1,2,3个球,那么剩下14个球,我们只需要在按照例一的方法去做,就可以了。
想要做题?
方程的解:https://jzoj.net/senior/#main/show/1344