(信息学奥赛辅导)排列与组合基础知识
高中信息技术 全国青少年奥林匹克联赛教案 排列与组合

排列与组合课题:排列与组合目标:知识目标:如何利用程序就各种排列和组合能力目标:排列组合的运用重点:求出n的全排列和从m中取n个的组合难点:算法的理解板书示意:1)求全排列的算法2)求组合数的算法授课过程:例5:有3个人排成一个队列,问有多少种排对的方法,输出每一种方案?分析:如果我们将3个人进行编号,分别为1、2、3,显然我们列出所有的排列,123,132,213,231,312,321共六种。
可用循环枚举各种情况,参考程序:program exam5;vari,j,k:integer;beginfor I:=1 to 3 dofor j:=1 to 3 dofor k:=1 to 3 doif (i+j+k=6) and (i*j*k=6) then writeln(i,j,k);end.上述情况非常简单,因为只有3个人,但当有N个人时怎么办?显然用循环不能解决问题。
下面我们介绍一种求全排列的方法。
设当前排列为P1 P2 ,…,P n,则下一个排列可按如下算法完成:1.求满足关系式P j-1 < P j的J的最大值,设为I,即I=max{j | P j-1 < P j , j = 2..n}2.求满足关系式P i -1 < P k的k的最大值,设为j,即J=max{K | P i-1 < P k , k = 1..n}3.P i -1与P j互换得 (P) = P1 P2 ,…,P n4.(P) = P1 P2 ,…, P i-1 P i,…, P n部分的顺序逆转,得P1 P2 ,…, P i-1 P n P n-1,…, P i便是下一个排列。
例:设P1 P2 P3 P4 =34211.I= max{j | P j-1 < P j , j = 2..n} = 22.J=max{K | P i-1 < P k , k =1..n} = 23.P1与P2交换得到43214.4321的321部分逆转得到4123即是3421的下一个排列。
排列与组合知识点资料

排列与组合知识点资料一、排列的重点名词术语1、什么是排列?排列就是从指定数量的元素中取出确定个数的元素进行有序的排列。
2、什么是全排列?它的定义是,把n个不同的元素按照一定的顺序排成一列,叫做n个不同元素的全排列。
它的计算公式是:pⅴn]=n(n-1)(n-2)…3.2.1注意:右边是前个n个自然数的连乘积,用符号n!表示,读作n 的阶乘。
公式(P)可以写成Pⅴn]=n!例如计算:Pv5解:Pv5]=1ⅹ2x3x4ⅹ5=120由此我们总结出阶乘的定义:自然数从1到n的连乘积叫做n的阶乘,用符号n!表示。
3、什么叫做选排列?它的定义是:从m个不同的元素中,每次取出n(n<m)个不同的元素,按着一定的顺序排成一列叫做从m个不同的元素中每次取n个不同元素的选排列。
注意:所有不同的选排列的种数用符号Avm.n表示例如Av3.6]=6,注意它的操作法则mn都是正整数,且m>n它的计算公式:Aⅴm.n]=m(m-1)(m-2)…(m-n+1)应用阶乘符号:公式A可以写成:Aⅴm.n]=m!/(m-n)!计算Av7.4]=7x6ⅹ5ⅹ4=840二、组合的重点名词述语1、什么是组合?组合是从给定的数量中取出确定个数的元素进行组合,但是不用考虑它的排序。
它的计算公式Avm.n]=(Cvm.n)(pvn)计算组合种数的公式:Cvm.n]=m!/n!(m-n)!计算组合数:Cv15.2]=15x14/1x2)=1052、重点提示操作法则(1)、按公式当n=m时Cvm.m]=m!/m!0!因为Cvm.m]=1,为了使公式当n=m时也成立,所以我们规定:0!=1。
(2)、当n=0时,按公式Cm.0]=m!/0!m!]=1因此规定:Cvm.0]=1三、几个重点名词述语1、排列组合是研究什么问题的?排列组合的中心问题,是研究给定要求的排列与组合,可能出现的总数。
另外排列组合与古典概率有密切的关系。
2、排列组合的定理加法原理,乘法原理,这两个原理,如果是贯穿始终的法则与序无关是组合。
信息学竞赛中问题求解常见题分析(排列组合)

信息学竞赛中问题求解常见题分析排列组合问题一、知识点:1. 分类计数原理:做一件事情,完成它可以有n 类办法,在第一类办法中有m 1种不同的方法,在第二类办法中有m 2种不同的方法,……,在第n 类办法中有m n 。
种不同的方法,那么完成这件事共有N=m 1+m 2+…+m n 。
种不同的方法。
2. 分步计数原理:做一件事情,完成它需要分成n 个步骤,做第一步有m 1种不同的方法,做第二步有m 2种不同的方法,……,做第n 步有m n 种不同的方法,那么完成这件事有N=m 1*m 2*…m n 。
种不同的方法。
3. 排列的概念:从n 个不同元素中,任取m(m ≤n)个元素(这里的被取元素各不相同),按照一定的顺序排成一列,叫做从n 个不同元素中取出m 个元素的一个排列。
4. 排列数的定义:从n 个不同元素中,任取m(m ≤n)个元素的所有排列的个数叫做从n 个元素中取出m 个元素的排列数,用符号m n A 表示。
5. 排列数公式:m n A =n(n-1)(n-2)…(n-m+1)(m ,n ∈N ,m ≤n)6. 阶乘:n!表示正整数l 到n 的连乘积,叫做n 的阶乘规定0!=l 。
7. 排列数的另一个计算公式:)!(!m n n A m n -= 8. 组合的概念:一般地,从n 个不同元素中取出m(m ≤n)个元素并成一组,叫做从n 个不同元素中取出m 个元素的一个组合.9. 组合数的概念:从n 个不同元素中取出m(m ≤n)个元素的所有组合的个数,叫做从n 个不同元素中取出m 个元素的组合数.用符号mn C 表示.10. 组合数公式:!)1)...(2)(1(m m n n n n A A C m m m n m n +---==,或)!(!!m n m n C m n -= (n ,m ∈N ,且m ≤n)11. 组合数的性质1:m n n m n C C -=,规定:0n C :=1; 2:11-++=m n m n m n C C C 。
排列与组合

解 (1)方法一 (元素分析法) 先排甲有 6 种,其余有 A88种, 故共有 6·A88=241 920(种)排法. 方法二 (位置分析法) 中间和两端有 A38种排法,包括甲在内的其余 6 人有 A66种排法, 故共有 A83·A66=336×720=241 920(种)排法. 方法三 (等机会法) 9 个人的全排列数有 A99种,甲排在每一个位置的机会都是 均等的,依题意,甲不在中间及两端的排法总数是 A99×69= 241 920(种).
[6 分]
(4)有序均匀分组问题.在(3)的基础上再分配给 3 个人,
共有分配方式C26AC2433C22·A33=C26C42C22=90(种).
[8 分]
(5)无序部分均匀分组问题.共有C46AC2122C11=15(种). [10 分]
(6)有序部分均匀分组问题. 在(5)的基础上再分配给 3 个人,共有分配方式C46CA1222C11·A33=
排列与组合旳综合应用
例 3 4 个不同的球,4 个不同的盒子,把球全部放入盒内. (1)恰有 1 个盒不放球,共有几种放法? (2)恰有 1 个盒内有 2 个球,共有几种放法? (3)恰有 2 个盒不放球,共有几种放法?
把不放球的盒子先拿走,再放球到余下的盒子中并且不空. 解 (1)为保证“恰有 1 个盒不放球”,先从 4 个盒子中任意取 出去一个,问题转化为“4 个球,3 个盒子,每个盒子都要放 入球,共有几种放法?”即把 4 个球分成 2,1,1 的三组,然后 再从 3 个盒子中选 1 个放 2 个球,其余 2 个球放在另外 2 个盒 子内,由分步计数原理,共有 C41C24C31×A22=144(种).
排列问题
例 1 有 4 名男生、5 名女生,全体排成一行,问下列情形各 有多少种不同的排法? (1)甲不在中间也不在两端; (2)甲、乙两人必须排在两端; (3)男女相间.
信奥排列组合题

信奥排列组合题是信息学奥林匹克竞赛(信奥赛)中涉及
排列组合知识的题目。
以下是一些例子:
1. 有五个人排成一排,要求其中甲和乙必须相邻,那么
不同的排法有多少种?
2. 有七个人排成一排,要求甲和乙不能相邻,那么不同
的排法有多少种?
3. 将数字1,2,3,4填入标号为1,2,3,4的四个方
格里,每格填一个数,要求每个方格的标号与所填数字均不
相同,那么有多少种填法?
4. 有四封信需要投入五个信箱中,问有多少种投法?
5. 七个人排成一排照相,若要求甲、乙、丙三人不相邻,有多少种不同的排法?
6. 有十个三好学生名额需要分到七个班级中,每个班级
至少一个名额,那么有多少种不同的分配方案?
以上问题都需要应用排列组合的知识进行解答。
在解决这
些问题时,通常需要明确问题的限制条件,并根据限制条件
选择合适的排列组合方法进行计算。
最不枯燥的排列组合学习!(信息学奥赛基础)

最不枯燥的排列组合学习!(信息学奥赛基础)组合数学>最不枯燥的排列组合学习!尽管我在认真,刷题速度和学习进度还是要被大佬们甩好几条街……忙着刷题后期肯定没办法写总结,就只好一边学习一边填坑啦啦啦。
^上面的都是废话^—————————————————————————————一、什么是组合数学(完全没用,建议跳)对于很多计数类问题,由于方案数过于巨大,我们无法用搜索的方式来解决问题因此我们需要对计数类问题进行一些优化这些优化就是组合数学研究的内容:(没错就是研究计数类问题)————————————————————二、基本原理加法原理:如果完成一件事有两类方法,第一类方法有m1种方案,第二类方法有m2种方案,那么完成这件事有m1+m2种方案将方案分类,类类相加,并且要不重不漏乘法原理:如果完成一件事有两步,第一步有m1种方案,第二步方法有m2种方案,那么完成这件事有m1*m2种方案将方案分步,步步相乘。
(这两种原理都好说,稍加理解立即明白,以下的知识几乎都要基于这两种原理咕~)三、排列与组合:(弱小的主角)排列:从n个不同的元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列从n个数中取出m个数进行排列的方案数用符号A(nm)表示公式:A(nm)=n*(n-1)*(n-2)*...*(n-m+1)=n!/(n-m)!(自己理解:第一个数字有n种选择,第二个数字有(n-1)中选择,以此类推,然后相乘)组合:从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数从n个数中取出m个数的方案数用符号C(nm)表示公式:C(nm)=A(nm)/A(mm)=n!/(m!(n-m)!)(自己理解:每一种组合有A(m,m)种排列,所以每一种组合被这A(m,m)中排列算重了A(m,m)次,除掉就好啦)四、定理一箩筐(这东西才是组合数学(死亡)的真谛啊)欧几里得算法:这东西好说。
组合和排列知识点总结

组合和排列知识点总结1. 组合和排列的定义组合和排列是两种基本的组合数学概念,它们都与集合相关。
在数学中,集合是由一些互不相同的对象组成的整体,而排列和组合则是从一个给定的集合中选取一定数量的对象并按照一定的规则进行排列或组合。
排列是指从一个集合中取出一定数量的对象,并按照一定的顺序进行排列,即排列是有序的。
假设集合中有n个对象,要从中取出m个对象按照一定的顺序进行排列,符合条件的排列个数称为排列数。
通常用P(n, m)表示排列数。
组合是指从一个集合中取出一定数量的对象,但不考虑其排列顺序,即组合是无序的。
假设集合中有n个对象,要从中取出m个对象,符合条件的组合个数称为组合数。
通常用C(n, m)表示组合数。
2. 排列的性质排列具有一些基本的性质,这些性质在排列的计算中具有重要的意义。
(1)排列的计算公式在排列中,通过一个简单的计算公式可以求出排列数。
假设集合中有n个对象,要从中取出m个对象按照一定的顺序进行排列,则排列数可以用以下公式计算:P(n, m) = n! / (n-m)!其中,n!表示n的阶乘,即n! = n × (n-1) × (n-2) × … × 2 × 1。
(2)排列的性质排列具有如下的性质:- P(n, m) = n × (n-1) × … × (n-m+1)- P(n, n) = n!3. 组合的性质组合也具有一些基本的性质,这些性质在组合的计算中同样具有重要的意义。
(1)组合的计算公式在组合中,同样可以通过一个简单的计算公式求出组合数。
假设集合中有n个对象,要从中取出m个对象,组合数可以用以下公式计算:C(n, m) = n! / [m! × (n-m)!](2)组合的性质组合具有如下的性质:- C(n, m) = C(n, n-m)- C(n, 0) = 1- C(n, n) = 1- C(n, 1) = n- C(n, m) = C(n-1, m-1) + C(n-1, m)4. 组合和排列的应用组合和排列在实际中有着广泛的应用,它们在数学、计算机科学、统计学等领域都有着重要的作用。
信息学竞赛中的组合数学问题与解决方法

信息学竞赛中的组合数学问题与解决方法组合数学是一门研究离散结构及其性质的数学学科,它在信息学竞赛中扮演着重要角色。
组合数学问题在竞赛中常常出现,并且需要灵活运用数学原理和方法来解决。
本文将探讨信息学竞赛中的组合数学问题及其解决方法,帮助读者提升解题能力。
一、全排列与组合的概念及性质在组合数学中,全排列(Permutation)和组合(Combination)是最基本的概念。
全排列指的是将一组元素按照一定规则进行排列,而组合则是从一组元素中选择出若干元素的集合。
全排列的个数可以通过求解阶乘来得到,例如n个元素的全排列个数为n!(n的阶乘)。
组合的个数则可以通过组合数公式来计算,即C(n,m) = n! / (m! * (n-m)!),其中n表示元素总数,m表示需要选择的元素个数。
了解全排列和组合的概念及性质有助于我们更好地解决相关问题。
二、排列组合在竞赛中的应用在信息学竞赛中,排列组合问题常常涉及到选择、排序、计数等方面。
下面将介绍几个常见的组合数学问题及其解决方法。
1. 选取问题选取问题是组合数学中的一类常见问题,涉及在给定集合中选择符合条件的元素。
例如,给定一个集合{1, 2, 3, ..., n},我们需要从中选出m个元素,并且满足某种特定条件。
解决这类问题时,可以运用组合数公式进行计算,同时结合条件进行筛选。
2. 重复选取问题重复选取问题是指从给定的元素集合中进行有放回地选择。
在这类问题中,元素可以被选择多次。
解决重复选取问题时,可以利用全排列的思想,根据元素的重复次数进行计算。
3. 排列问题排列问题是指将一组元素按照一定规则进行排序。
在信息学竞赛中,常见的排列问题包括全排列和部分排列。
解决排列问题时,可以通过递归、动态规划等算法设计方法。
三、解决组合数学问题的常用技巧与策略除了掌握基本的概念和方法外,还需要掌握一些常用的解题技巧和策略,以提高解题效率。
1. 计数技巧在解决组合数学问题时,经常需要统计满足条件的排列组合的个数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
排列与组合基础知识有关排列与组合的基本理论和公式:加法原理:做一件事,完成它可以有n 类办法,在第一类办法中有m 1种不同的方法,在第二类中办法中有m 2种不同的方法,……,在第n 类办法中有m n 种不同方法。
那么完成这件事共有N=m 1+m 2+…+m n 种不同的方法,这一原理叫做加法原理。
乘法原理:做一件事,完成它需要分成n 个步骤,做第一步有m 1种不同的方法,做第二步有m 2种不同的方法,……,做第n 步有m n 种不同的方法,那么完成这件事共有N =m 1×m 2×…×m n种不同的方法,这一原理叫做乘法原理。
公式:阶乘公式!(1)(2)321n n n n =⋅-⋅-⋅⋅,规定0!=1;全排列公式!n n P n = 选排列公式!(1)(2)(1)()!m n n P n n n n m n m =---+=-、m m m n n m P C P = 圆排列:n 个不同元素不分首位围成一个圆圈达到圆排列,则排列数为:!(1)!n n n =- 组合数公式(1)(2)(1)!!!()!m mn n m m P n n n n m n C P m m n m ---+===-、规定01n C = m n m n n C C -=、11m m m n n n C C C -+=+、0122n n n n n n C C C C ++++=)提示:(1)全排列问题和选排列问题,都可根据乘法原理推导出来。
(2)书写方式:r n P 记为P (n,r );rn C 记为C (n,r )。
加法原理例题:图1中从A 点走到B 点共有多少种方法?(答案:4+2+3=9)乘法原理例题:图2中从A 点走到B 点共有多少种方法?(答案:4×6=24)加法原理与乘法原理综合:图3、图4中从A 走到B 共有多少种方法?(答案:28、42) A B 图1 A B图2AB图3 AB图4注意:在信息学奥赛中,有许多只需计数而不需具体方案的问题,都可以通过思维转换或方法转换,最后变为两类问题:一类是转变为排列组合问题,另一类是转变为递推公式问题。
因此对于加法原理、乘法原理、排列、组合等知识,需要非常熟练,以达到简化问题的目的。
对于转变为递推公式的问题,我们将在后续专题中另行讲解。
加法原理、乘法原理、排列、组合例题:1.(1)用数字0、1、2、3能组成多少个三位数?(2)要求数字不能重复,又能组成多少个三位数?(提示:(1)先确定百位数,只能是1、2、3之间的数字;再确定十位数,可以为0、1、2、3任何一个;最后确定个位数,可以为0、1、2、3任何一个。
根据乘法原理,共有3×4×4=48个。
(2)同理,先确定百位数、再确定十位数、最后确定个位数,根据乘法原理,共有3×3×2个)2.国际会议洽谈贸易,有5家英国公司,6家日本公司,8家中国公司,彼此都希望与异国的每个公司单独洽谈一次,问需要安排多少个会谈场次?(提示:共分为中英、中日、英日会谈三类,对于中英会谈,先选定中方公司有8种选法,在选定英方公司有5种选法,故根据乘法原理有5×8:同理中日8×6;英日5×6;总的会谈:118)3.有编号为1、2、3、4、5的五本书需要摆放在书架上,问有多少种不同的摆放方案数。
(提示:此题为全排列,故摆放方案总数为P(5,5)=5!=120种。
也可以按乘法原理思考,即摆放第一本书有5种选择,摆放第二本数有4种选择,……,最后结果为5×4×3×2×1即5!)4.有编号为1、2、3、4、5的五本书需要任选3本书摆放在书架上,问有多少种不同方案。
(提示:可根据选排列公式计算,总数为P(5,3)。
也可以根据乘法原理计算,答案为5×4×3=60)5.有编号为1、2、3、4、5的五本书需要任选3本书,问有多少种方法。
(提示:此题为组合问题,答案为355433!C⨯⨯==10)6.五种不同颜色的珠子串成一圈项链,问有多少种不同的方法。
(提示:此题属于圆排列问题,答案为(5-1)!=24)7.把两个红色球、两个蓝色球、三个黄色球摆放在球架上,问有多少种方案。
(提示:此题为排列问题。
摆放方案总数为(2+2+3)!种,但是两个红球一样,所以要除以2!,同理两个蓝球,除以2!,三个黄球,除以3!,即摆放方案总数为(223)!210 2!2!3!++=⨯⨯)8.有男女各5人,其中3对是夫妻,他们坐成一排,若每对夫妻必须相邻而坐,问有多少种方法?(提示:因为3对夫妻必须相邻而坐,因此可以将每对夫妻看为一个整体进行排列,这样排列总数为(7!)种方法,又因为每对夫妻可以可以左右调换位置,因此总的方案为(7!×2×2×2))9.(1)把3个相同的球放到4个不同颜色的盒子中去,问有多少种方法?(2)把4个相同的球放到3个不同颜色的盒子中去,问有多少种方法?(3)推广开来,把R个相同的球放到N个不同颜色的盒子中去,问有多少种方法?(提示:这是允许重复组合的典型模型。
)(解答(1):3个球放入4个不同颜色盒子的分法共有3、0、0、0;1、2、0、0;1、1、1、0三类;对于第一类3、0、0、0的方法,共有44P 种方法,但是有3个0是一样的,所以应该除以33P ,即第一类分法的方法数为4343/P P 种,同理,第二种分法的方法数为4242/P P ,第三种分法的方法数为4343/P P ,所以总共的方法数为(4343/P P +4242/P P +4343/P P )种。
解答(2)自行求解。
解答(3):这一类问题,我们称为重复组合问题,其求解公式为C (n+r-1,r )。
请记住该公式即可。
) 排列组合练习习题:1. 有5本日文书、7本英文书、10本中文书。
问(1)从中任取2本书有多少种方案?(2)从中取2本相同文字的书有多少种方案?(3)从中取2本不同文字的书有多少种方案?(提示:此题为组合问题。
答案分别为:25710C ++、2225710C C C ++、222257105710()C C C C ++-++)2. 把八个“车”放在8×8的国际象棋棋盘上,如果它们两两均不能互吃(即在任何一行、任何一列都只有一个“车”),那么称八个“车”处于一个安全状态。
问共有多少种不同的安全状态?(提示:乘法原理。
先在第一行放置一个“车”,有8种选法,再在第二行放置一个“车”,还有7种选法,同理……,总共有8×7×…×2×1,即8!种不同的安全状态。
)3. 从1~300之间任取3个不同的数,使得这3个数的和正好被3除尽,问有多少种方案?(提示:1~300之间的数被3除的余数共有三类,分别是余数为0、余数为1、余数为2,每类各100个数。
任取3个数且这3个数相加的和正好被3除尽的情况只能是以下四种情况之一:余数为0+1+2;0+0+0;1+1+1;2+2+2。
再根据乘法原理和加法原理即可求解。
答案为:100×100×100+100×99×98+100×99×98+100×99×98)4. 5对夫妇围绕圆桌坐下吃饭,共有多少种方案?如果要求夫妇必须坐在一起,又有多少种方案?(提示:此题为圆排列问题。
第一问的答案为(10-1)!。
对于第二问,因为夫妇必须坐在一起,因此可以将每对夫妇看为一个整体先行进行圆排列,排列方案为(5-1)!,又因为每对夫妇可以左右交换位置,因此总的排列方案为(5-1)!×2×2×2×2×2。
)5. N 个男同学和N 个女同学围绕圆桌坐下,要求男女必须交替就座,问共有多少种就座方法?(提示:先经这N 个男同学进行圆排列,方案为(N -1)!,然后每个女同学依次坐入到两个男同学中间,第一个女同学有N 个位置可以选,第二个女同学有N -1个位置可以选,依此类推。
根据乘法原理,所有的就座方案为(N -1)!×N !)6. 8人站成一排排队,如果其中的甲和乙两人要求一定站在一起,问有多少种排队方法?如果甲和乙两人要求一定不站在一起,又有多少种方法?(提示:第一问中,甲和乙一定站在一起,因此可以先将此二人看为一个整体,则排队方法为7!,又因为甲和乙可以交换位置,因此总的方案为7!×2。
对于第二问,则用8个人的总排队方案数减去甲和乙站在一起的方案数即可,答案为8!-7!×2。
)7. 有N 个男同学和M 个女同学站成一排,其中这M 个女同学要求站在一起,问共有多少种排队方法?(提示:排列问题+乘法原理。
分两步:第一,先将这M 个女同学看成一个整体排列;第二,再将这M 个女同学再排列。
然后根据乘法原理即可求得。
答案为:(N +1)!×M !)8. 一个长度为N +M 个字符的01字符串,问其中有N 个1的字符串有多少个?(提示:组合问题。
现有N +M 个字符,如果把1看作取字符,把0看作不取字符,那么其中有N 个1的字符串即相当于从N +M 个字符中,任取N 个字符的组合。
答案为:C (N +M ,N ))9. 一个N*M (N 表示行,M 表示列)的网格,从左上角(1,1)点开始走到右下角(N ,M )点,每次只能向右或者向下走,问有多少种不同的路径。
(方法一:从(1,1)点走到(N,M)点,无论如何走一共都要走(N-1)+(M-1)步,其中N-1步向右走,M-1步向下Array走,因为只有两种走法,不妨用二进制表示走路方式,1表示向右走,0表示向下走。
则可用一个长度为(N+M-2)的二进制串来表示走路方法,其中如果出现了N-1个1,则表示找到了一种路径。
从而把题目转化为求长度为N+M-2的2进制串中有N-1个1的个数,即求组合数学公式C(N+M-2,N-1)的值。
方法二:对本题稍加分析就能发现,要到达棋盘上的某个点,只能从该点的上边过来,或者从该点的左边过来,根据加法原理,要到达该点的路径数目,就等于到达该点上点的路径与该点左点的路径数目之和,因此我们可以按照逐行递推的方法求出从起点到终点的路径数目。
初始化,左上角第一个元素值为1,其它点的值为上点与左点的和。
)对于如右图的网格,用方法一的答案为C(4+3,3)=35;用方法二逐行递推的方法得到网格上的数字,最后答案也为35。
比较两种方法,当数据较小时,采用公式一比较直接,但如果数据较大时,公式一的乘法运算量较大,这时可考虑用方法二逐行递推求得答案。