zoukankan      html  css  js  c++  java
  • 如何直观地理解排列数和组合数

          如果要问我高中时学文科有什么不好,我觉得,最不好的一点就是在你上概率论课时,你听着老师讲的内容一脸蒙蔽,而其他同学纷纷表示自己高中时就已经学过了。之前做题遇到排列数与组合数都是直接写A和C,并不进行计算,所以对于其公式也只是记住能用就好,但是今天闲着无聊,想试着推导一下排列数和组合数的公式,也为了能深入理解排列数和组合数的原理,所以就开始了天马行空的想象。

          对于排列数,可以视为“分步解决”的问题,也就是说:

               第一步,从n个某物中选取1个,有n种选择方法;

               第二步,从剩下的n-1个某物中选取1个,有n-1种选择方法;

               第三步,从剩下的n-2个某物中选取1个,有n-2种选择方法;

               ……

               第k步,从剩下的n-k+1个某物中选取1个,有n-k+1种选择方法;

          那么这k个步骤结合到一起,就有nleft( n-1 
ight) left( n-2 
ight) cdots left( n-k+1 
ight) 种选择方法,也可以表示成frac { n! }{ (n-k)! } ,也就是标准的排列数公式。

          对于组合数,我们只需要去除所有排列中元素相同的排列,使每种元素相同的排列组只剩下一个排列即可,所以,最关键的问题也就在于确定其中每种元素相同的排列组所包含的排列的个数。Aegin{matrix} k \ n end{matrix}会产生frac { n! }{ (n-k)! } 个排列,其中,对于任意排列left( { a }_{ 1 },quad { a }_{ 2 },quad cdots ,quad { a }_{ k } 
ight) 都有Aegin{matrix} k \ k end{matrix}个相同元素的排列存在,所以,每一个元素相同的排列组里包含Aegin{matrix} k \ k end{matrix}个排列,frac { n! }{ (n-k)! } 个排列可以分为frac { Aegin{matrix} k \ n end{matrix} }{ Aegin{matrix} k \ k end{matrix} } 个元素相同的排列组,也就是说,从n个元素里选取k个元素组成一个组合,其选取方法总共有Cegin{matrix} k \ n end{matrix}=frac { Aegin{matrix} k \ n end{matrix} }{ Aegin{matrix} k \ k end{matrix} } =frac { n! }{ k!left( n-k 
ight) ! } 种。

  • 相关阅读:
    sphinx的配置和管理
    linux 性能分析
    17个非常有用的PHP类和库
    webkit webApp 开发技术要点总结
    国外十大流行的服务器监控工具
    lnmp环境搭建,超详细教程
    nginx在window下的服务安装
    HBase源代码阅读与理解
    找出1到N中缺少的數?
    插入排序 (insertion_sort)與 合並排序 (mergesort)
  • 原文地址:https://www.cnblogs.com/simbon/p/6074575.html
Copyright © 2011-2022 走看看