首页 > 其他分享 >排列数与组合数

排列数与组合数

时间:2023-08-05 19:14:32浏览次数:24  
标签:排列 组合 元素 right 苹果 left

首先是定义

组合数:从 \(n\) 个不同元素中,任取 \(m(m \le n)\) 个元素并成一组,叫做从 \(n\) 个不同元素中取出 \(m\) 个元素的一个组合;\(C_{n}^{m}\) 表示从 \(n\) 个不同元素中取出 \(m(m \le n)\) 个元素的所有组合的个数,叫做从 \(n\) 个不同元素中取出 \(m\) 个元素的组合数。

例如,从 \(\left\{1, 2, 3 \right\}\) 这3个不同元素中,取出2个元素的所有组合就是 \(\left\{1, 2\right\}\), \(\left\{1, 3\right\}\) 和 \(\left\{2, 3 \right\}\) , 因此组合数 \(C_{3}^{2} = 3\) 。

排列数:表示从 \(n\) 个不同元素中,任取 \(m(m \le n)\) 个元素(被取出的元素各不相同),按照一定的顺序排成一列,叫做从\(n\)个不同元素中取出 \(m\) 个元素的一个排列。 \(P_{n}^{m}\) 表示从 \(n\) 个不同元素中取出 \(m\) 个元素的所有排列的个数,叫做从 \(n\) 个不同元素中取出 \(m\) 个元素的排列数。

例如,从 \(\left\{1, 2, 3 \right\}\) 这3个不同元素中,取出2个元素的所有排列就是\(\left\{1, 2\right\}\), \(\left\{2, 1\right\}\),\(\left\{1, 3\right\}\), \(\left\{3, 1\right\}\) , \(\left\{2, 3 \right\}\) , \(\left\{3, 2\right\}\) 因此排列数 \(P_{3}^{2} = 6\) 。

排列与元素的顺序有关,组合与顺序无关。

下面是一些计算排列数与组合数的常用公式:

  1. \[P_{a}^{b} = a(a - 1)...(a - b + 1) = \frac{a!}{(a - b)!} \]

很容易理解,取第一个元素时有 \(a\) 种取法,取第二个元素时有 \((a - 1)\) 种取法...一直到第 \(b\) 个元素时有 \((a - b + 1)\) 种取法, 相乘即可得。

  1. \[C_{a}^{b} = \frac{P_{a}^{b}}{b!} = \frac{a(a - 1)...(a - b +1)}{b!} = \frac{a!}{b!(a - b)!} \]

同样也很容易理解:先从求出从 \(a\) 个元素中取 \(b\) 个元素的排列数,然后对于取出的 \(b\) 个元素,它们的 \(P_{b}^{b}\) 种排列的元素都是同一个组合的,因此除去 $ P_{b}^{b} $ , 即 \(b!\)。

  1. \[C_{a}^{b} = C_{a - 1}^{b} + C_{a - 1}^{b - 1} \]

这个就有点动态规划的思想了,假设从 \(a\) 个苹果中选 \(b\) 个苹果,那么所有的组合就一定能够不重不漏地分成2类:不取第 \(a\) 个苹果的组合和取第 \(a\) 个苹果的组合。不取第 \(a\) 个苹果的组合数等同于从剩下 $a - 1 $个苹果中取出 \(b\) 个苹果的组合数, 即 \(C_{a - 1}^{b}\)。取第 \(a\) 个苹果的组合数就等同于先将第 \(a\) 个苹果拿走,再从剩下的 \(a - 1\) 个苹果中取出 \(b - 1\) 个苹果的组合数, 即 \(C_{a - 1}^{b - 1}\) 。于是从 \(a\) 个苹果中选 \(b\) 个苹果的组合数就是这两种组合数的和, 即 \(C_{a}^{b} = C_{a - 1}^{b} + C_{a - 1}^{b - 1}\)。

  1. \[C_{n}^{0} + C_{n}^{1} + C_{n}^{2} + ...+C_{n}^{n} = 2^n \]

这个就是要从实际含义来考虑,$ C_{n}^{0} + C_{n}^{1} + C_{n}^{2} + ...+C_{n}^{n} $ 实际上就相当于求从 \(n\) 个元素中取任意多个元素 \((\le n)\) 的组合数,那么对于每个元素,都有取或不取 \(2\) 种可能,所以一共 \(n\) 个元素就有 \(2^n\) 种可能,每种可能对应了一种组合,由此可得该恒等式。(恒等式证明常常都是从等式的实际含义考虑)。

标签:排列,组合,元素,right,苹果,left
From: https://www.cnblogs.com/yduck/p/17608429.html

相关文章

  • 『置顶』组合数学
    排列组合从$n$个互不相同的球里选出$m$个,顺序有影响则称为排列,没有影响则称为组合。$P_n^m$表示排列的方案数,$C_n^m$表示组合的方案数。其中$C_{n}^m$也可表示为$\binomnm$,$P_n^m$在数值上与$n^{\underlinem}$(下降幂)相等。我们以下认为$P_n^m$用阶乘表示,下降......
  • DFS 算法模板——二叉树的遍历非递归写法要会,排列组合的一定要自己画一颗树,变量i和当
    dfs算法模板:1、下一层仅2个节点的dfs,也就是二叉树的dfs先序遍历,迭代和递归写法都要熟悉:defpreoder_traversal(root):ifnotroot:returnstack=[root]whilestack:node=stack.pop()dosomethingwithnodeifnode.ri......
  • 组合数学合集
    前置芝士加法原理完成一项工作有\(n\)类方法,每类方法有\(a_i\)种,则总共有\(\sum\limits_{i=1}\limits^{n}a_i\)种方法完成这项工作。乘法原理完成一项工作有\(n\)个步骤,每个步骤有\(a_i\)种方法,则\(\prod\limits_{i=1}\limits^{n}a_i\)种方法完成这项工作。排......
  • nflsoj 5924 选排列
    与全排列略微有些不同,只需要将退出条件需要改成u==r#include<iostream>usingnamespacestd;constintN=15;intr,n;intpath[N];boolst[N];voiddfs(intu){if(u==r){for(inti=0;i<r;i++)printf("%d",path[i]);printf("\n&......
  • 组合式API
    setupsetup选项的写法与执行时机setup函数代码示例<script>import{ref}from'vue'exportdefault{setup(){constcount=ref(0)//返回值会暴露给模板和其他的选项式API钩子return{count}},mounted(){console.log(......
  • 【简单】【175. 组合两个表】联结方式总结!
    【简单】【175.组合两个表】联结方式总结!(一)MySql必会在MySQL中,有几种常见的表连接方式,包括:(1)内连接(INNERJOIN)返回两个表中匹配的行。使用共同的键来连接两个表,并返回满足连接条件的行。语法如下:SELECT列名FROM表1INNERJOIN表2ON表1.列=表2.列;(2)左连接(LEFT......
  • 排列组合
     排列:从n个元素的集合S中,有序的选出r个元素,叫做S 的一个r排列排列数的性质:第一条性质:(n*(n-1)*...*2*1)/((n-1-m+1)*...*2*1)=n!/(n-m)!;第二条性质:m*(n-1)!/(n-m)!+(n-1)!/(n-1-m)!=(n-m+m)*(n-1)!/(n-m)!=n!/(n-m)! 组合:从n个元素的集合S中,无序的选出r......
  • echarts中legend实现排列对齐
    问题当图表中的legend过多的时候,就需要考虑legend进行换行,但是换行之后,图例就会无法对齐。解决legend:{icon:"rect",width:"80%",itemWidth:6,itemHeight:6,bottom:0,textStyle:{color:"#333",rich:{a:{width:100,......
  • mongodb 倒叙排列
    MongoDB倒序排列在MongoDB中,我们可以使用sort()方法对查询结果进行排序。默认情况下,sort()方法按升序排序。如果想要倒序排列,我们可以在sort()方法中指定-1作为排序规则。在本文中,我们将讨论如何在MongoDB中进行倒序排列,并提供一些代码示例来演示这一过程。配置环境首先,我们需......
  • 组合数学2
    上文:组合数学初步Stirling简述Stirlingformula这是斯特林公式,我们可以利用它算出阶。比如卡特兰数)。下面是正式的详细介绍:第一类stirling数把n个不同的人分成K个圆排列的方案数。有两个重点:1.不用平均分。2.K个圆排列内部有序。3.每组不能为空记法:第二类stirli......