排列和组合的求解

1)使用“分类计数原理”还是“分步计数原理”要根据我们完成某件事时采取的方式而定,可以分类来完成这件事时用“分类计数原理”,需要分步来完成这件事时就用“分步计数原理”;那么,怎样确定是分类,还是分步骤?“分类”表现为其中任何一类均可独立完成所给的事件,而“分步”必须把各步骤均完成才能完成所给事件,所以准确理解两个原理强调完成一件事情的几类办法互不干扰,相互独立,彼此间交集为空集,并集为全集,不论哪类办法都能将事情单独完成,分步计数原理强调各步骤缺一不可,需要依次完成所有步骤才能完成这件事,步与步之间互不影响,即前步用什么方法不影响后面的步骤采用的方法。

2)排列与组合定义相近,它们的区别在于是否与顺序有关。

3)复杂的排列问题常常通过试验、画“树图”、“框图”等手段使问题直观化,从而寻求解题途径,由于结果的正确性难于检验,因此常常需要用不同的方法求解来获得检验。

4)按元素的性质进行分类,按事件发生的连续性进行分步是处理排列组合问题的基本思想方法,要注意“至少、至多”等限制词的意义。

5)处理排列、组合综合问题,一般思想是先选元素(组合),后排列,按元素的性质进行“分类”和按事件的过程“分步”,始终是处理排列、组合问题的基本原理和方法,通过解题训练要注意积累和掌握分类和分步的基本技能,保证每步独立,达到分类标准明确,分步层次清楚,不重不漏。

6)在解决排列组合综合问题时,必须深刻理解排列组合的概念,能熟练地对问题进行分类,牢记排列数与组合数公式与组合数性质,容易产生的错误是重复和遗漏计数。

总之,解决排列组合问题的基本规律,即:分类相加,分步相乘,排组分清,加乘明确;有序排列,无序组合;正难则反,间接排除等。

其次,我们在抓住问题的本质特征和规律,灵活运用基本原理和公式进行分析解答的同时,还要注意讲究一些解题策略和方法技巧,使一些看似复杂的问题迎刃而解。下面介绍几种常用的解题方法和策略。

一.特殊元素(位置)的“优先安排法”:对于特殊元素(位置)的排列组合问题,一般先考虑特殊,再考虑其他。

例1、 用0,2,3,4,5,五个数字,组成没有重复数字的三位数,其中偶数共有( )。

A.24个B.30个C.40个D.60个

[分析]由于该三位数为偶数,故末尾数字必为偶数,又因为0不能排首位,故0就是其中的“特殊”元素,应该优先安排,按0排在末尾和0不排在末尾分两类:1)0排末尾时,有A42个,2)0不排在末尾时,则有C21 A31A31个,由分数计数原理,共有偶数A42 + C21 A31A31=30个,选B。

二.总体淘汰法:对于含否定的问题,还可以从总体中把不合要求的除去。如例1中,也可用此法解答:五个数字组成三位数的全排列有A53个,排好后发现0不能排首位,而且数字3,5也不能排末位,这两种排法要排除,故有A53--3A42+ C21A31=30个偶数。

三.合理分类与准确分步含有约束条件的排列组合问题,按元素的性质进行分类,按事情发生的连续过程分步,做到分类标准明确,分步层次清楚,不重不漏。

四.相邻问题用捆绑法:在解决对于某几个元素要求相邻的问题时,先整体考虑,将相邻的元素“捆绑”起来,看作一“大”元素与其余元素排列,然后再考虑大元素内部各元素间顺序的解题策略就是捆绑法.

例2、有8本不同的书;其中数学书3本,外语书2本,其它学科书3本.若将这些书排成一列放在书架上,让数学书排在一起,外语书也恰好排在一起的排法共有( )种.(结果用数值表示)

解:把3本数学书“捆绑”在一起看成一本大书,2本外语书也“捆绑”在一起看成一本大书,与其它3本书一起看作5个元素,共有A55种排法;又3本数学书有A33种排法,2本外语书有A22种排法;根据分步计数原理共有排法A55 A33 A22=1440(种).

注:运用捆绑法解决排列组合问题时,一定要注意“捆绑”起来的大元素内部的顺序问题.

五.不相邻问题用“插空法”:不相邻问题是指要求某些元素不能相邻,由其它元素将它们隔开.解决此类问题可以先将其它元素排好,再将所指定的不相邻的元素插入到它们的间隙及两端位置,故称插空法.

例3、用1、2、3、4、5、6、7、8组成没有重复数字的八位数,要求1与2相邻,2与4相邻,5与6相邻,而7与8不相邻。这样的八位数共有( )个.(用数字作答)

解:由于要求1与2相邻,2与4相邻,可将1、2、4这三个数字捆绑在一起形成一个大元素,这个大元素的内部中间只能排2,两边排1和4,因此大元素内部共有A22种排法,再把5与6也捆绑成一个大元素,其内部也有A22种排法,与数字3共计三个元素,先将这三个元素排好,共有A33种排法,再从前面排好的三个元素形成的间隙及两端共四个位置中任选两个,把要求不相邻的数字7和8插入即可,共有A42种插法,所以符合条件的八位数共有A22 A22 A33 A42=288(种).

注:运用“插空法”解决不相邻问题时,要注意欲插入的位置是否包含两端位置.

六.顺序固定用“除法”:对于某几个元素按一定的顺序排列问题,可先把这几个元素与其他元素一同进行全排列,然后用总的排列数除于这几个元素的全排列数。

例4、6个人排队,甲、乙、丙三人按“甲---乙---丙”顺序排的排队方法有多少种?

分析:不考虑附加条件,排队方法有A66种,而其中甲、乙、丙的A33种排法中只有一种符合条件。故符合条件的排法有A66 ÷A33 =120种。(或A63种)

例5、4个男生和3个女生,高矮不相等,现在将他们排成一行,要求从左到右女生从矮到高排列,有多少种排法。

解:先在7个位置中任取4个给男生,有A74种排法,余下的3个位置给女生,只有一种排法,故有A74种排法。(也可以是A77 ÷A33种)

七.分排问题用“直排法”:把几个元素排成若干排的问题,可采用统一排成一排的排法来处理。

例6、7个人坐两排座位,第一排3个人,第二排坐4个人,则不同的坐法有多少种?

分析:7个人可以在前两排随意就坐,再无其它条件,故两排可看作一排来处理,不同的坐法共有A77种。

八.逐个试验法:题中附加条件增多,直接解决困难时,用试验逐步寻找规律。

例7.将数字1,2,3,4填入标号为1,2,3,4的方格中,每方格填1个,方格标号与所填数字均不相同的填法种数有()

A.6 B.9 C.11 D.23

解:第一方格内可填2或3或4,如第一填2,则第二方格可填1或3或4,若第二方格内填1,则后两方格只有一种方法;若第二方格填3或4,后两方格也只有一种填法。一共有9种填法,故选B

九、构造模型“隔板法”: 对于较复杂的排列问题,可通过设计另一情景,构造一个隔板模型来解决问题。

例8、方程a+b+c+d=12有多少组正整数解?

分析:建立隔板模型:将12个完全相同的球排成一列,在它们之间形成的11个间隙中任意插入3块隔板,把球分成4堆,每一种分法所得4堆球的各堆球的数目,对应为a、b、c、d的一组正整解,故原方程的正整数解的组数共有C113 .

又如方程a+b+c+d=12非负整数解的个数,可用此法解。

十.排除法:对于含“至多”或“至少”的排列组合问题,若直接解答多需进行复杂讨论,可以考虑“总体去杂”,即将总体中不符合条件的排列或组合删除掉,从而计算出符合条件的排列组合数的方法.

例9、从4台甲型和5台乙型电视机中任意取出3台,其中至少要甲型与乙型电视机各一台,则不同的取法共有( )种.

A.140种B.80种C.70种D.35种

解:在被取出的3台中,不含甲型或不合乙型的抽取方法均不合题意,因此符合题意的抽取方法有C93-C43-C53=70(种),故选C.

注:这种方法适用于反面的情况明确且易于计算的习题.

十一.逐步探索法:对于情况复杂,不易发现其规律的问题需要认真分析,探索出其规律

例10、从1到100的自然数中,每次取出不同的两个数,使它们的和大于100,则不同的取法种数有多少种。

解:两个数相加中以较小的数为被加数,1+100>100,1为被加数时有1种,2为被加数有2种,…,49为被加数的有49种,50为被加数的有50种,但51为被加数有49种,52为被加数有48种,…,99为被捕加数的只有1种,故不同的取法有(1+2+3+…+50)+(49+48+…+1)=2500种

十二.一一对应法:

例11.在100名选手之间进行单循环淘汰赛(即一场失败要退出比赛)最后产生一名冠军,要比赛几场?

解:要产生一名冠军,要淘汰冠军以外的所有选手,即要淘汰99名选手,要淘汰一名就要进行一场,故比赛99场。

时间: 2024-10-15 06:00:41

排列和组合的求解的相关文章

排列与组合的一些定理

一,加法原理与乘法原理 加法原理与乘法原理是排列与组合的基础.加法原理本质上是分类,乘法原理本质上是分步. 分类,就是把一个集合(某事物)分成互不相交的若干独立的部分.比如,概率论中的全概率公式就将事件分成”全划分“ 分类思想可以简化程序的时间复杂度.比如:最短路径算法-Dijkstra算法的应用之单词转换(词梯问题) 分步,就是第一步干嘛,第二步再干嘛……比如A地到D地,第一步:先到达B地:第二步,再到达C地 二,排列 P(n,r)表示从n个数中选择r个数的一个全排列 公式:P(n,r)=P(

经典算法学习之分治法(以排列、组合程序为例)

分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解. 分治法在每层递归是遵循的三个步骤: (1)分解原问题为若干个子问题,这些子问题是原问题的规模较小的实例. (2)解决这些子问题,队规的求解各个子问题,当子问题规模足够小的时候,直接求解. (3)合并这些子问题的解构成原问题的解. 显然归并排序是一个非常经典规矩的分治法的例子,鉴于之前已经写过一篇关于归并排序的博文,这里不在使用归并排序作为例子. 注意分治法的每一层递归

OI内的排列与组合(简单版)

§1基本原理 △让我们来看下面问题: 从甲地到乙地,可以乘火车,也可以乘汽车,还可以乘轮船.一天中,火车有4班,汽车有2班,轮船有3班.那么,一天中乘坐这些交通工具从甲地到乙地共有多少种不同走法?△分析:因为从甲地到乙地,乘火车有4种选择(方法),乘汽车有2种选择(方法),乘轮船有3种选择(方法).因此,一天中乘坐这些交通工具从甲地到乙地共有:4+2+3 = 9种不同的方法. ▲一般地,做一件事,完成它可以有n类方法,在第一类办法中有m1种不同的方法,在第二类办法中有m2种不同的方法,……,在第

排列与组合

话说,初一的时候看到这样一道题:有一种彩票中奖率为1%,买一百张是不是一定能中奖?答案自然是否定的,但我在想,如果有200张彩票,两张有奖,买一百张中奖率是多少?一天晚上睡觉的时候真的忽然想出来了(那时还没有学排列组合,自己想出了组合公式),最后算出来大约是75%.(相信学过OI的同学就不用看本文了)    先解决这个问题:两百张彩票,买一百张有多少种排列方式?当年我就是在脑海里构造了一个类搜索树的东西(好吧,二维的线性搜索树……),简单地说我们买第一张彩票的时候有200种方案可选,买第二张时由

似兄弟的排列与组合

大家还记得我们在高中或者是在初中(具体什么时候忘记了)的时候在数学上学的排列与组合吗?记得那时候我的数学老师非得让我们把排列与组合的定义背的滚瓜烂熟的,但是,我到现在也背不上来,如今,在编程上又让我们相见,哈哈,缘分呐! 现在,就让我们一起回顾一下什么叫作排列,什么叫作组合吧. 1.排列 定义:在数学上--从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列:从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做

排列与组合的实现

排列与组合,递归实现 // Permutation and Combination.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<vector> #include<set> #include<iostream> using namespace std; vector<vector<int>>aaa; set<set<int>>solu; voi

从排列到组合——深度优先搜索

前段时间在洛谷3.0上刷到一个题,让本人挠头了一段时间,RT: 题目描述 已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为: 3+7+12=22  3+7+19=29  7+12+19=38  3+12+19=34. 现在,要求你计算出和为素数共有多少种. 例如上例,只有一种的和为素数:3+7+19=29. 首先解决这个问题显

排列和组合

排列和组合在我们高中的时候是最熟悉不过的数学词了,接下来找找这方面的题目供大家思考 (1)爬楼梯 一个楼梯有50个台阶,每一步可以走一个台阶,也可以走两个台阶,请问走完这个楼梯共有多少种方法? (2)铺砖头 有一个长度为n,宽度为2的地面,有若干块长为2,宽为1的地砖,请问用此地砖铺完这个地面共有多少种方法? (3)自然数拆分 给定一个自然数n,将其拆分为若干个自然数字之和,请问有多少种方法? (4)1分2分和5分多少种组合一角的方法 (5)放苹果

不同元素的排列与组合

#include<iostream> #include<vector> #include<string> #include<algorithm> #include<numeric> using namespace std; vector<vector<int> > ret; vector<int> sub; int num = 0; void helper(int* str, int n,int i) ///递