不可负我 2星
共回答了99个问题采纳率:94.7% 评论
排列组合的公式是排列的定义及其计算公式:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。A(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)! 此外规定0!=1(n!表示n(n-1)(n-2)...1,也就是6!=6x5x4x3x2x1组合的定义及其计算公式:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。C(n,m)=A(n,m)/m!;C(n,m)=C(n,n-m)。(n≥m)其他排列与组合公式 从n个元素中取出m个元素的循环排列数=A(n,m)/m!=n!/m!(n-m)!. n个元素被分成k类,每类的个数分别是n1,n2,
...nk
这n个元素的全排列数为 n!/(n1!×n2!×...×nk!). k类元素,每类的个数无限,从中取出m个元素的组合数为C(m+k-1,m)。11小时前
娃莪嫁 3星
共回答了311个问题 评论
标准的排列组合
先看一个例子 (1):
三个城市 A,B,C,从 A 到 B 有三条路 a₁, a₂, a₃ ,从 B 到 C 有两条路 b₁, b₂,问 从 A 到 C 有多少种走法?
解:
要 从 A 到 C 就 必须选择一条 A 到 B 的路 a 和 一条 B 到 C 的路 b,然后连成 A 到 C 的路 ab。
a 可以是 a₁, a₂, a₃ 有3种选法,b 可以是 b₁, b₂ 有3种选法,于是根据日常的经验,ab 的可能有:
所有 ab 总共有 3 × 2 = 6 种可能。
这个例子就是 乘法法则:
若具有性质 a 的事件有 m 个,具有性质 b 的事件有 n 个,则 同时具有 性质 a 和 b 的事件有 m × n 个。
因为,
令 a 的 m 个事件为 a₁, a₂, ..., a_m,b 的 n 个事件为 b₁, b₂, ..., b_m,则根据日常的经验,ab 的可能有:
乘法法则,还可以从 两项 扩展到 任意有限多项:
若具有性质 a₁, a₂, a₃, ..., a_n 的事件分别有 m₁, m₂, m₃, ..., m_n 个,则 同时具有 性质 a₁, a₂, a₃, ..., a_n 的事件有 m₁ × m₂ × m₃ × ... × m_n 个。
因为,
然后利用 两项的乘法法则,就得到:
再看一个例子 (2):
总共有三个球 ①②③,从中挑选出两个排成一列,问有多少种挑选方案?
解:
挑出两个排成一列,分两步,
先从三个球 中任意 挑出一个球 a 放在序列的第一位;
再从挑剩下的 二个球 中 中任意 挑出一个球 a 放在序列的第二位;
这样就组成了 ab 的序列。构建 ab 序列的过程 和 例子 (1) 组成路线的过程 类似,因此 也 符合乘法法则。因为 a 是 3 选 1 有 3 种可能,b 是 2 选 1 有 2 种可能,所以 构建 ab 序列 有 3 × 2 = 6 种可能,具体如下:
例子 (2) 就是 从 3 中取出 2 的排列,更一般地定义为:
从 n 个元素 中取出 m(≤ n) 个元素 排成一列,称为 从 m 中取出 n 的 排列,排列的方案个数称为排列数,记为 P(n, m)。
从 m 中取出 n 的 排列的构建过程如下:
根据 乘法法则,有:
P(n, m) = n(n-1)(n-2)...(n-m+1)
而:
n! = n(n-1)(n-2)...(n-m+1)(n-m)(n-m-1)...1
(n-m)! = (n-m)(n-m-1)...1
故,
P(n, m) = n!/(n-m)!
比较特别的是:
从 n 中取出 n 个 的排列,就是 对 n 个元素进行各种排列,称为 全排列 ,P(n, n) = n!/(n-n)! = n!/0! = n!;
从 n 中取出 0 个 的排列,称为 零排列 ,P(n, 0) = n!/(n-0)! = n!/n! = 1;
将 例子 (2),改为 (2'):
总共有三个球,从中挑选出两个不考虑顺序,问有多少种挑选方案?
解:
我们前面已经 计算出了序列 ab 的排列数 P(3, 2),所谓不考虑顺序,也就是说,两个元素 a, b 的各种排列:ab, ba 算一种方案。
两个元素 a, b 的各种排列,就是 2 的全排列,即,P(2, 2)。于是 只需要 用 P(3, 2) 除以 P(2, 2) 就是 答案了:
P(3, 2) / P(2, 2) = 3!/((3-1)!2!) = 3
例子 (2') 就是 从 3 中取出 2 的组合,更一般地定义为:
从 n 个元素 中取出 m(≤ n) 个元素 不考虑顺序,称为 从 m 中取出 n 的 组合,组合的方案个数称为组合数,记为 C(n, m)。
根据例子 (2') 中的分析,有:
C(n, m) = P(n, m) / P(m, m) = P(n, m) = n!/((n-m)!m!)
比较特别的:
从 n 中取出 n 个 的组合,C(n, n) = n!/((n-n)!n!) = n!/(0!n!) = n!/n! = 1;
从 n 中取出 0 个 的组合,C(n, 0) = n!/((n-0)!0!) = n!/(n!0!) = n!/n! = 1;
一些特殊的排列组合
考虑,问题 (3):3 个人去饭店吃饭,围坐在一张圆桌前,问有多少种坐法?
围坐成圈不同于排成一列,这是一种新的排列方式,于是定义:
从 n 个元素 中取出 m 个元素 排成一圈,称为 圆周排列,将 圆周排列数 记为 Q(n, m)。
分析:
对于标准排列,可得到的序列:
若将序列排成一圈,
则显然,下面的 m 个排列只能算一种:
故,
Q(n, m) = P(n, m) / m
根据上面的分析结果,显然,问题(4) 的答案是 Q(3, 3) = P(3, 3) / 3 = 2,即,顺时针坐 和 逆时针左。
在排列组合中,默认挑选出来的m个元素是不能重复,但如果允许重复呢?
将 例子 (2'),改为:
总共有三个球,从中挑选出两个不考虑顺序,不过每次挑选时会将球的号码记录然后将球放回,问有多少种挑选方案? (2''-1)
有两个箱子,每个箱子里装着完全相同的三个球,从每个箱子里挑选1个不考虑顺序 ,问有多少种挑选方案? (2''-2)
(2''-1) 和 (2''-2) 本质是相同的,下面以 (2''-1) 为例。
分析:
首先,可以用穷举法。①②③ 中有放回的挑选2个球 组合,按照从小到大的排列顺序,有如下可能:
①①、②②、③③、①②、①③、②③
共有 6 种。
其次,可以将 有重复组合 转化为 无重复组合,方法如下:
对于任何一次的有重复组合结果,按照 从小到大的排列:
a₁ ≤ a₂
让 原来三个小球中 号码比 a₂ 大的小球的号码 都加 1, 然后 将 小球 a₂ 的号码 也加 1 并 添加到 三个小球 中。
这样以来,就将 从 3 个小球中 有放回的挑选 2 个组合 变为 从 4 个小球 中 无放回的挑选 2个组合。
具体操作如下(黑底为修改过的球):
将 ①②③ → ①① 改为 ①❷❸❹ → ①❷
将 ①②③ → ②② 改为 ①②❸❹ → ②❸
将 ①②③ → ③③ 改为 ①②③❹ → ③❹
将 ①②③ → ①② 改为 ①②❸❹ → ①❸
将 ①②③ → ①③ 改为 ①②③❹ → ①❹
将 ①②③ → ②③ 改为 ①②③❹ → ②❹
反过来,对于从 4 个小球 ①②③④,无放回的挑选两个的组合结果,从小到大的排列顺序排列:
a₁ < a₂
让 原来 4 个小球 中 号码大于 a₂ 的小球的号码 都减 1,然后 将 a₂ 从 4 个小球 中 去除,并将 a₂ 的号码也 减 1。
这样以来,就将 从 4 个小球中 无放回的挑选 2 个组合 变为 从 3 个小球 中 有放回的挑选 2个组合。
具体操作如下(黑底为修改过的球):
将 ①②③④ → ①② 改为 ①❷❸ → ①❶
将 ①②③④ → ①③ 改为 ①②❸ → ①❷
将 ①②③④ → ①④ 改为 ①②③ → ①❸
将 ①②③④ → ②③ 改为 ①②❸→ ②❷
将 ①②③④ → ②④ 改为 ①②③ → ②❸
将 ①②③④ → ③④ 改为 ①②③ → ③❸
上面的事实说明:
3 取 2 有重复的组合数 ≡ 4 取 2 无重复的组合数,即,C(4, 2) = 6。
将 3 取 2 的情况 扩展到 n 取 m 有:
将 n 个数 取 m(≤ n) 个 有重复的组合 的结果,按照 从小到大的排列:
a₁ ≤ a₂ ≤ a₃ ≤ ... ≤ a_m (4)
对每个 aᵢ(i = 2, 3, ..., m) 重复一下操作:
让 被挑选数集 以及 (4) 中 所有比 aᵢ 大的数都加 1, 然后 将 aᵢ 加 1,并将 aᵢ 添加到 被挑选数集 中取;
这样以来,就将 n 个数 取 m(≤ n) 个 有重复的组合 变为 n+(m-1) 个数 取 m(≤ n) 个 无重复的组合。
反过来,对于 n+(m-1) 个数 取 m(≤ n) 个 无重复的组合 的结果,按照 从小到大的排列顺序排列:
a₁ < a₂ < a₃ < ... < a_m (5)
对每个 aᵢ(i = 2, 3, ..., m) 重复一下操作:
让 被挑选数集 以及 (5) 中 所有比 aᵢ 大的数都减 1, 然后,将 aᵢ 从 被挑选数集 中删除, 并将 aᵢ 在 (5) 中也减 1;
这样以来,n+(m-1) 个数 取 m(≤ n) 个 无重复的组合 变为 就将 n 个数 取 m(≤ n) 个 有重复的组合 。
综上,就证明了:
n 个数 取 m(≤ n) 个 有重复的组合 ≡ n+(m-1) 个数 取 m(≤ n) 个 无重复的组合
最终结果:
从 n 个元素 中取出 m 个元素,有重复组合 的组合数为:C(n+(m-1), m)。
题目: 从 A = {1,2, ..., n} 个数 中取 m(≤ [n / 2]) 个,不相邻组合,即,不存在包括 i 和 i + 1 的组合,问组合数是多了?
分析:
这里使用类似 有重复组合 的思路,将 不相邻组合 转化为 等价 的 标准组合。方法如下:
对于 从 A 个数 中取 m 个 的不相邻组合 的结果,按照从小到大的顺序排列:
a₁ < a₂ < a₃ < ... < a_m (6)
对每个 aᵢ(i = 2, 3, ..., m) 重复一下操作:
让 A 以及 (6) 中 所有大于 aᵢ 的数都减去 1,并将 aᵢ 从 A 删除,最后 在 (6) 中 让 aᵢ 减去 1。
这样以来,就将从 A 中取 m 个 的不相邻组合 变为 从 A’ = {1, 2, ..., n - (m-1) } 中取 m 个 的标准组合。
反过来,对于 从 A’ 中取 m 个 的标准组合 的结果,按照从小到大的顺序排列:
a₁ < a₂ < a₃ < ... < a_m (7)
对每个 aᵢ(i = 2, 3, ..., m) 重复一下操作:
让 A' 以及 (7) 中 所有大于 aᵢ 的数都加上 1,并将 aᵢ 也加上1 然后添加到 A' 中。
这样以来,就将 从 A’ 中取 m 个 的标准组合 变成 A 中取 m 个 的不相邻组合 。
综上,就证明了:
从 A = 中取 m 个 的不相邻组合 ≡ 从 A’ 中取 m 个 的标准组合
最终结果:
从 A = {1,2, ..., n} 个数 中取 m(≤ [n / 2]) 个,不相邻组合 的组合数为:C(n-(m-1), m)。
最后,除了以上介绍的这些较为基础的排列组合外,还有大量的排列组合问题存在,例如:
将 被选择集合 进行分类,比如:分为男女, 然后 对排列组合结果进行限制,比如:男女相等,男女相邻;
总之 排列组合的算法根据 具体问题不同而异,具体在进行解题时要发挥聪明才智,做到灵活多变,不要强行照搬套路。
由于篇幅有限,只能回答到这里了。
(本人数学水平同样有限,所以出错在所难免,非常欢迎各位老师批评指正。)
9小时前
猜你喜欢的问题
5个月前1个回答
5个月前1个回答
5个月前1个回答
5个月前2个回答
5个月前1个回答
5个月前2个回答
热门问题推荐
3个月前1个回答
4个月前1个回答
4个月前1个回答
3个月前2个回答
3个月前2个回答
2个月前2个回答
3个月前2个回答
3个月前2个回答
3个月前1个回答