排列和组合
来源:互联网 发布:mac破解软件安装 编辑:程序博客网 时间:2024/06/01 09:01
排列组合计算公式:
排列A(n,m)=n×(n-1)....(n-m+1)=n!/(n-m)!(n为下标,m为上标,以下同)组合C(n,m)=<span style="font-family: arial, 宋体, sans-serif, 'Microsoft YaHei', tahoma; line-height: 20px;"> A( n, m) / A( m, m)</span> =n!/m!(n-m)!;问题:
从1到n(包含)中选出m<=n个数,在下列情况下,有多少种组合?
限制条件:
1、无限制
2、各位数字升序排列3、不能有重复数字
4、各位数字升序排列并且不能有重复数字
1. n^m(n的m次方)
这个不需要过多的解释。
因为“无限制”,所以,每一个元素都可以取得任一可能的数字,于是得出结果。
2.C(m+n-1,m)
第二种情况就是从n个数有重复的选取m个数的变体 因为m个数升序组合只有一种
因而是C(m+n-1,m)
本义角度的证明:
1)从n个数中选择a个;
2)从m个数中的m-1个隔板选出a-1个,作为a个数的间隔。
C(1,n)*C(0,m-1)+...+C(m,n)*C(m-1,m-1)
=C(1,n)*C(m-1,m-1)+...+C(m,n)*C(0,m-1)
=C(m,n+m-1)
3. A(n, m)
因为“不重复”,而且又是列举所有排列的“情况”,所以选择A(n, m)。
4. C(n, m)
这个问题可以看作是在问题[3]的基础上的。
因为问题[3]已经不存在“重复”的情况了,所以这里同样不存在。这个问题在问题[3]的基础上增加了新的“约束”,就是“升序排列”,根据前面问题[2]的分析,满足“所有元素都不重复”的情况,于是得出 A(n, m)/A(m, m) = C(n, m)。
0 0
- 排列、组合和全排列
- 组合和排列
- 生成排列和组合
- 排列和组合问题
- 全排列和组合
- 排列和组合
- 生成组合和排列
- 求全排列和组合
- 排列和组合
- 排列和组合
- 组合和全排列
- 排列和组合算法
- 排列和组合区别
- 排列和组合
- lua实现全排列和组合排列
- 字符串的排列和组合
- 递归枚举排列和组合
- dfs 生成排列和组合
- 一些定义,随手记的
- 【常见问题】Chm文件能打开,但看不见内容,已解决
- 杭电2037的思路
- windows 和kali-linux双系统的安装
- 寒假杭电acm3
- 排列和组合
- weak_ptr
- 简单介绍 javascript 中 __proto__ 属性的原理
- xcode6.3 ineligible devices解决方法
- 类成员函数继承(virtual、非virtual)
- 4000点了,现在买A股晚不晚
- android控件-EditText
- EventBus使用详解(二)——EventBus使用进阶
- 数据结构学习——散列表ADT(程序化)