有什么不同?

在英语中,我们松散地使用“组合”这个词,没有考虑事物的顺序是否重要。换句话说:

  • “我的水果沙拉是苹果、葡萄和香蕉的组合”我们不在乎水果的顺序,它们也可以是“香蕉、葡萄和苹果”或“葡萄、苹果和香蕉”,它们是同一种水果沙拉。

  • “保险箱的密码是 472”。现在我们确实关心订单。“724”不起作用,“247”也不起作用。它必须正好是4-7-2。

因此,在数学中,我们使用更精确的语言:

当顺序无关紧要时,它是一个Combination。
当顺序确实很重要时,它是一个Permutation。

换句话说:排列是有序的组合。
想法 为了帮助你记住,认为“ P ermutationP osition

排列 Permutation

基本上有两种类型的排列:

  • 允许重复:例如上面的锁。它可能是“333”。
  • 无重复:例如跑步比赛中的前三个人。你不能成为第一和第二。

1. 重复排列

这些是最容易计算的。

当一个事物有 n 个不同的类型时……我们每次都有n 个选择!

例如:选择其中3项,排列为:

n × n × n

(n 乘以 3 次)

更一般地说:从具有n 个不同类型的事物中选择r,排列是:

n × n × ... (r 次)

(换句话说,有Ñ为首选的可能性,则有Ñ用于第二选择possibilites,依此类推,每次multplying。)

哪个更容易写下使用指数的[R :

n × n × ... (r 次) = n^r

示例:在上面的锁中,有 10 个数字可供选择 (0,1,2,3,4,5,6,7,8,9),我们选择其中的 3 个:

所以,公式很简单:

ñ ^ R

其中n是可供选择的事物数量,
我们从中选择r个,
允许重复,
顺序很重要。

2. 无重复排列

在这种情况下,我们每次都必须减少可用选择的数量。
示例:16 个台球可以按什么顺序排列?

选择后,比如数字“14”,我们不能再选择了。

所以,我们的第一个选择有 16 种可能性,我们的下一个选择有 15 种可能性,然后是 14、13、12、11 等等。总排列是:

16 × 15 × 14 × 13 × ... = 20,922,789,888,000

但也许我们不想全部选择它们,只选择其中的3个,然后是:

16 × 15 × 14 = 3,360

换句话说,16 个球中的 3 个球可以有 3,360 种不同的排列方式。

如果没有重复,我们的选择每次都会减少。

但是我们如何在数学上写出来呢?答:我们使用“阶乘函数”

感叹号表示阶乘
该阶乘函数(符号:!)只是意味着乘以一系列递减的自然数。例子:

4!= 4 × 3 × 2 × 1 = 24
7!= 7 × 6 × 5 × 4 × 3 × 2 × 1 = 5,040
1!= 1

注:一般认为0! = 1。不将任何数字相乘得到 1 似乎很有趣,但它有助于简化许多等式。
所以,当我们想要选择所有的台球时,排列是:

16!= 20,922,789,888,000

但是当我们只想选择 3 时,我们不想在 14 之后相乘。我们怎么做呢?有一个巧妙的技巧:我们除以13!

那很整洁。在13×12×...等被“抵消”,只留下16×15×14

公式写成:n! / (n − r)!
其中n是可供选择的事物数量,
我们从中选择r个,
不重复,
顺序很重要。

示例我们的“16 个台球中 3 个的顺序示例”是:

示例:一等奖和二等奖有多少种方式可以授予 10 人?

符号
人们没有编写整个公式,而是使用不同的符号,例如:

示例:P (10,2) = 90

组合Combination

也有两种类型的组合(还记得为了不的不现在重要):

  • 允许重复:例如口袋里的硬币 (5,5,5,10,10)
  • 不重复:例如彩票号码(2、14、15、27、30、33)

1. 重复组合

实际上,这些是最难解释的,所以我们稍后会回到这一点。

2. 不重复的组合

这就是彩票的运作方式。一次抽取一个数字,如果我们有幸运数字(无论顺序如何),我们就赢了!

解释它的最简单方法是:

假设顺序确实很重要(即排列),
然后改变它,因此顺序并没有关系。
回到我们的台球示例,假设我们只想知道选择了哪 3 个台球,而不是顺序。

我们已经知道 16 个中有 3 个给了我们 3,360 个排列。

但其中许多现在对我们来说都是一样的,因为我们不在乎什么顺序!

例如,假设选择了球 1、2 和 3。这些是可能的:

因此,排列具有 6 倍的可能性。

事实上,有一种简单的方法可以计算出“1 2 3”可以排列多少种方式,我们已经讨论过。答案是:

3! = 3 × 2 × 1 = 6

(再举个例子:4个东西可以放在4! = 4 × 3 × 2 × 1 = 24种不同的方式,自己试试吧!)

所以我们调整我们的排列公式以减少对象可以排列的方式(因为我们不再对它们的顺序感兴趣):

该公式非常重要,通常只是写在大括号中,如下所示:


其中n是可供选择的事物数量,我们从中选择r个,不重复,顺序无关紧要。
通常称为“n选r”(如“16选3”)也称为二项式系数。

符号

除了“大括号”,人们还使用这些符号:

示例:台球(无订单)
所以,我们的台球示例(现在没有顺序)是:

或者我们可以这样做:


有趣的是,还要注意这个公式是如何漂亮和对称的:


换句话说,从 16 个球中选择 3 个球,或从 16 个球中选择 13 个球具有相同的组合数。

Pascal帕斯卡三角形

我们还可以使用Pascal 三角形来查找值。向下到“n”行(顶行是 0),然后沿着“r”个位置和值就是我们的答案。这是显示第 8 行的摘录:

1. 重复组合

好的,现在我们可以解决这个问题…

冰淇淋
假设冰淇淋有五种口味:香蕉、巧克力、柠檬、草莓和香草( banana, chocolate, lemon, strawberry and vanilla)。

我们可以吃三勺。会有多少变化?

让我们使用字母表示口味:{b, c, l, s, v}。示例选择包括

  • {c, c, c}(3 勺巧克力)
  • {b, l, v}(香蕉、柠檬和香草各一个)
  • {b, v, v}(一个香蕉,两个香草)

(需要说明的是:有n=5 种东西可供选择,我们选择其中的r=3种。
顺序无关紧要,我们可以重复!)

现在,我无法直接向您描述如何计算它,但我可以向您展示一种特殊的技术,让您可以计算出来。

想想装在盒子里的冰淇淋,我们可以说“移过第一个盒子,然后拿 3 勺,然后再移 3 个盒子到最后”,我们将得到 3 勺巧克力!
我们可以把它写成 > o o o > > >(箭头表示移动,圆圈表示勺子)。

其实上面的三个例子可以这样写:

  • {c, c, c}(3 勺巧克力): > o o o > > >
  • {b, l, v}(香蕉、柠檬和香草各一个): o > > o > > o
  • {b, v, v}(一个香蕉,两个香草): o > > > > o o

好的,所以与其担心不同的口味,我们有一个更简单的问题:“我们可以用多少种不同的方式排列箭头和圆圈?”
请注意,始终有 3 个圆圈(3 勺冰淇淋)和 4 个箭头(我们需要移动 4 次才能从第 1 个容器移到第 5 个容器)。

所以(这里是一般的)有r + (n−1) 个位置,我们想要选择其中的r 个有圆。

这就像说“我们有r + (n−1) 个台球,想要从中选择r个”。换句话说,它现在就像台球问题,但数字略有变化。我们可以这样写:

其中ñ是的事情,不知如何选择号码,而且我们选择[R它们的重复允许,顺序无关紧要。
有趣的是,我们可以看箭头而不是圆圈,然后说“我们有r + (n-1) 个位置,想要选择其中的(n-1) 个有箭头”,答案是一样的:

那么,我们的例子呢,答案是什么?


有 35 种方法可以从五种口味的冰淇淋中获得 3 勺。

综上所述

呼,吸收了很多东西,所以也许你可以再读一遍以确保!

但我们知道如何这些公式的工作只是成功的一半。弄清楚如何解释现实世界的情况可能非常困难。

但至少现在您知道如何计算“订单无关紧要”和“不允许重复”的所有 4 种变体。

参考

https://www.mathsisfun.com/combinatorics/combinations-permutations.html

翻译:组合和排列Combination and Permutation相关推荐

  1. 时间序列分析之排列熵(Permutation Entropy)

    排列熵(Permutation Entropy,PeEn) 概念 排列熵同样和前面提到的近似熵.样本熵以及模糊熵一样,都是用于衡量时间序列复杂程度而的指标.只不过,它在计算重构子序列之间的复杂程度时, ...

  2. C#LeetCode刷题之#31-下一个排列(Next Permutation)

    目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4965 访问. 实现获取下一个排列的函数,算法需要将 ...

  3. Python 数据结构与算法——从二分图到寻找最大排列(Maximum Permutation)

    假设现在有 8 位有着特殊癖好的人去买票看电影,其中有一部分人得到了自己喜欢的座位,但大多数人并不满意.现在的问题是,如果这些人各自都有自己喜欢的座位(喜欢的座位有重叠,这是进行最大排列的前提,否则无 ...

  4. 《Mathematical Analysis of Algorithms》中有关“就地排列”(In Situ Permutation)的算法分析

    问题描述 把数列\((x_1,x_2,\cdots,x_n)\)变换顺序为\((x_{p(1)},x_{p(2)},\cdots,x_{p(n)})\),其中\(p\)是\(A=\{1,2,3,\cd ...

  5. 【C++】C++11 STL算法(七):排列操作(Permutation operations)、数值操作(Numeric operations)

    排列操作(Permutation operations) 一.is_permutation 1.原型: template< class ForwardIt1, class ForwardIt2 ...

  6. 排列公式和组合公式_排列与组合:排列公式与组合公式之间有什么区别?

    排列公式和组合公式 Here's the short version. 这是简短的版本. Let's take ringing bells in a church as an example. 让我们 ...

  7. 语言 全排列 函数_【排列组合】错位全排列的简化计算公式

    一.错位全排列问题 什么是错位全排列问题?其实很简单,在生活中可能都会遇到: "装错信封问题"是由当时最有名的数学家约翰·伯努利(Johann Bernoulli,1667-174 ...

  8. LeetCode 例题精讲 | 08 排列组合问题:回溯法的候选集合

    点击关注上方"五分钟学算法", 设为"置顶或星标",第一时间送达干货. 转自面向大象编程 本期例题:LeetCode 46 - Permutations[1]( ...

  9. 深入浅出统计学 第六章 排列与组合

    内容简介 本章内容主要介绍了两个基本概念,排序与组合 其中组合是之后计算二项分布的预备知识 对于计算而言,重点在于理解其所适应的不同情况,并记忆公式. 两者区别(P261): 1. 排列与顺序有关 2 ...

最新文章

  1. 成人高考 计算机英语作文,2018年成人高考英语作文范文六篇
  2. Windows Vista正版光碟上面的隐藏人像
  3. python库--tensorflow--RNN(循环神经网络相关)
  4. php不能加载extension的奇怪问题
  5. Bladex生成Swagger的方法
  6. spring mvc 提示_Spring BootHibernate提示
  7. crash recovery mysql_InnoDB crash recovery 完整过程
  8. Spring jndi连接数据库
  9. docker rabbitmq_RabbitMQ的介绍及使用进阶(Docker+.Net Core)
  10. Web测试常用的链接测试工具
  11. C语言相反次序重新排序
  12. java中构造方法的执行过程
  13. D触发器/同步异步复位/异步复位同步释放详细解释
  14. sharp计算机按钮配置,将Sharp TV HDMI接口连接到计算机并设置教程
  15. c语言 随机四则运算,随机四则运算 C语言
  16. Spring源码分析三:Bean标签解析之BeanDefinition
  17. 二十四节气和计算机专业,命理学与二十四节气的关系
  18. Photoshop技术学习有感
  19. Android开发环境搭建+AS常用功能指导
  20. 接收sqlplus的值_ORACLE中的替换变量或替代变量:-------Oracle中sqlPlus -oracle 输出变量...

热门文章

  1. 企鹅号登录显示服务器错误,腾讯内容开放平台
  2. 基于TF的CNN 与LSTM/GRU 的《流浪地球》影评数据分析
  3. 用python编程 商品打折_《Python编程入门指南》(上下册)
  4. hdoj 1874 dijkstra
  5. 虚拟主机和云服务器哪个划算,个人网站选择虚拟主机还是云服务器 区别和适用建议...
  6. SQL注入--表的猜解
  7. 人声修音效果器 – Celemony Melodyne Studio 5 V5.0.1 WiN-MAC
  8. node--fs模块
  9. 图像算法助力提效转转商品审核
  10. 学计算机语言的最佳年龄,6岁之前,是学习语言的最佳年龄