排列组合的一些公式及推导

排列数公式

\[A_n^m=n(n-1)(n-2)\cdots(n-m+1)=\frac{n!}{(n-m)!}\]
(规定\(0!=1\))

推导:把\(n\)个不同的元素任选\(m\)个排序,按计数原理分步进行

取第一个:有\(n\)种取法;

取第二个:有\((n-1)\)种取法;

取第三个:有\((n-2)\)种取法;?

……

取第\(m\)个:有\((n-m+1)\)种取法;

……

最后一步,取最后一个:有\(1\)种取法。

根据分步乘法原理,得出上述公式。

组合数公式

\[C_n^m=\frac{A_n^m}{A_m^m}=\frac{n(n-1)(n-2)\cdots (n-m+1)}{m!}=\frac{n!}{m!(n-m)!}\]

\[C_n^n=1\]

证明:利用排列和组合之间的关系以及排列的公式来推导证明。

将部分排列问题\(A_n^m\)分解为两个步骤:?

第一步,就是从\(n\)个球中抽\(m\)个出来,先不排序,此即组合数问题\(C_n^m\);

第二步,则是把这\(m\)个被抽出来的球排序,即全排列\(A_m^m\)。

根据乘法原理,\(A_n^m=C_n^m A_m^m\),那么
\[C_n^m=\frac{A_n^m}{A_m^m}=\frac{n(n-1)(n-2)\cdots (n-m+1)}{m!}=\frac{n!}{m!(n-m)!}\]

组合数递推公式

\[C_n^m=C_{n-1}^m+C_{n-1}^{m-1}\]

根据分类计数原理:要么含有新加元素要么不含新加元素。

组合求和公式

\[C_n^0+C_n^1+C_n^2+\cdots+C_n^n=2^n\]

我们感性认知一下,上面这个式子的左边表示什么呢?

把从\(n\)个球中抽出\(0\)个球的组合数(值为\(1\))、抽出\(1\)个球的组合数、抽出\(2\)个球的组合数、……、抽出\(n\)个球的组合数相加。

换句话说,就是从\(n\)个球中随便抽出一些球,问一共有多少种组合。

对于第1个球,可以选,也可以不选,有2种情况。

对于第2个球,可以选,也可以不选,有2种情况。

对于任意一个球,可以选,也可以不选,有2种情况。

根据乘法原理,一共\(\underbrace{2\times 2\times \cdots \times 2}_{n\text{个2相乘}} = 2^n\)种组合。

想要严谨的证明?数学归纳法

  1. 当\(m=1\)时,\(C_1^0+C_1^1=2=2^1\)成立。
  2. 假设\(n=k(k\geq 1,k\in \mathbb{N}^*)\)时等式成立,即
    \[\sum_{i=0}^{k} C_k^i=2^n\]
    成立,当\(n=k+1\)时,
    \[\begin{aligned}
    & C_{k+1}^0 + C_{k+1}^1 + C_{k+1}^2 + \cdots + C_{k+1}^{k} + C_{k+1}^{k+1}\ = & C_{k+1}^0+ \left(C_k^0+C_k^1\right) + \left(C_k^1+C_k^2\right) + \cdots + \left(C_k^{k-1}+C_k^k\right) + C_{k+1}^{k+1}\ = & \left(C_k^0 + C_k^1 + C_k^2 + \cdots + C_k^k\right) + \left(C_k^0 + C_k^1 + C_k^2 + \cdots + C_k^k\right)\ = & 2 \times 2^k\ = & 2^{k+1}
    \end{aligned}\]
    等式也成立。
  3. 由1、2得,等式对\(n\in \mathbb{N}^*\)都成立。

也可偷懒地用二项式定理证明(其实二项式定理也是用数学归纳法证明的):

\[(a+b)^n=\sum_{k=0}^{n}C_n^k a^{n-k}b^k\]
令\(a=b=1\),就得到了
\[\sum_{i=0}^{n} C_n^i=2^n\]

原文地址:https://www.cnblogs.com/1024th/p/10623541.html

时间: 2024-10-25 11:56:14

排列组合的一些公式及推导的相关文章

leetcode-Combinations 复习复习排列组合

Combinations 题意: 根据给定的n和k,生成从1到n范围内长度为k的排列组合 示例: n=4 k=2 [[1, 2], [1, 3], [1, 4], [2, 1], [2, 3], [2, 4], [3, 1], [3, 2], [3, 4], [4, 1], [4, 2], [4, 3]] 解题: 正常情况下我们通常想到的都是通过使用递归,以枚举的形式来生成组合.先从给定的范围中拿一个数出来,把它同剩下的每一个数进行组合,然后再在每个组合上对不存在于组合的每个数进行合并,这样依次

排列组合的实现(js描述)

组合的实现 排列组合描述和公式 犹记得高中数学,组合表示C(m, n),意思为从集合m,选出n个数生成一项,总共有多少个项的可能?组合是无序的,排列是有序的.所以排列的项数量多于组合 排列A(n,m)=n×(n-1).(n-m+1)=n!/(n-m)!(n为下标,m为上标,以下同) 组合C(n,m)=P(n,m)/P(m,m) =n!/m!(n-m)! 组合的实现 /** * 求:组合C(m, n),m为上标,n为下标.m选n的所有项 * m {必传} 原始数据 * n {必传} 当前项还需元素

hdu 1799 (循环多少次?)(排列组合公式)

循环多少次? Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3051    Accepted Submission(s): 1117 Problem Description 我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分.例如, 如果代码中出现 for(i=1;i<=n;i++) OP ; 那么做了n次OP运算

排列组合公式

今天在写一个算法的时候用到了排列组合,突然感觉不熟悉了,于是自己搜索了下, 重新复习下,把笔记记下来,便于以后复习. 第一,排列 1)排列的定义,就是指从给定n个数的元素中取出指定r个数的元素,进行排序 2)排列公式 3 公式解读, 总长度为r,第一个人有n-0种选,第二个有n-1种,,,,最后一个有n-(r-1)种(为什么是减去(r-1) 因为到第r个人的时候,发现自己前面有r-1个人已经消耗了r-1个选择了,自己的选择余地变成n-(r-1),这和第一个人发现前面有0个选择已经消耗是一样道理)

poj 3252 Round Numbers 【推导&#183;排列组合】

以sample为例子 [2,12]区间的RoundNumbers(简称RN)个数:Rn[2,12]=Rn[0,12]-Rn[0,1] 即:Rn[start,finish]=Rn[0,finish]-Rn[0,start-1] 所以关键是给定一个X,求出Rn[0,X] 现在假设X=10100100  这个X的二进制总共是8位,任何一个小于8位的二进制都小于X 第一部分,求出长度为[0,7]区间内的二进制是RoundNumber的个数  对于一个长度为Len的二进制(最高位为1),如何求出他的Rou

杭电 2200 Eddy&#39;s AC难题 (排列组合 公式)用double来表示64位

Eddy's AC难题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3710    Accepted Submission(s): 1741 Problem Description Eddy是个ACMer,他不仅喜欢做ACM题,而且对于Ranklist中每个人的ac数量也有一定的研究,他在无聊时经常在纸上把Ranklist上每个人的

简明易懂的理解排列组合公式

说实话,我可能无意识中总是感觉自己数学不好,有时自己稍微陌生的数学内容就尽量的逃避,这哪能行,必须要去面对的.我又不是搞数学的研究,咱只是去应用就行了. 下面是知乎降解排列组合公式比较透彻的一个帖子 https://www.zhihu.com/question/26094736

【noi 2.6_9288】&amp;【hdu 1133】Buy the Ticket(DP / 排列组合 Catalan+高精度)

题意:有m个人有一张50元的纸币,n个人有一张100元的纸币.他们要在一个原始存金为0元的售票处买一张50元的票,问一共有几种方案数. 解法:(学习了他人的推导后~) 1.Catalan数的应用7的变形.(推荐阅读:http://www.cnblogs.com/chenhuan001/p/5157133.html).P.S.不知我之前自己推出的公式“C(n,m)*C(2*m,m)/(m+1)*P(n,n)*P(m,m)”是否是正确的. (1)在不考虑m人和n人本身组内的排列时,总方案数为C(m+

组合数学中排列组合一点理解

在数学中,什么是排列组合呢?其实在生活中我相信使用是非常广泛的,下面做一个简单阐述 集合中不同元素的排列,是对这些元素一种安排.我们也对集合中某些元素的有序安排感兴趣.对一个集合中r个元素的有序安排称为r排列 简单来说,就是存在n个元素,你需要从中选择r个组合起来,这时有一个问题,就是这些元素怎么表示出来? 可以这么理解,如果能够写在纸上,就是说12,21,这样罗列出来的,并且他们是两种不同情况,那么就是排列,即有顺序的,但如果是不能写在纸上(这里只是比喻,并非不能真的写),或者说你每次组合的元