zoukankan      html  css  js  c++  java
  • 关于阶乘

    排列组合计算公式

    排列的定义及其计算公式:从n个不同元素中,任取m个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列(m≤n,m与n均为自然数,下同);从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。A(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)! 

    此外规定0!=1(n!表示n(n-1)(n-2)...1,也就是6!=6x5x4x3x2x1。

    综上,阶乘既是从n个不同元素,任取m=n 个元素的所有排列的个数。

    递归阶乘算法:

    private function factorial(value:Number):Number

    {

       var s:Number;

       if(value > 1)

        {

          s = value * factorial(value -1);

        }

        else

        {

          return 1;

        }

         return s;

    }

    组合的定义及其计算公式:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。C(n,m)=A(n,m)/m!;C(n,m)=C(n,n-m)。(n≥m)

    其他排列与组合公式 从n个元素中取出m个元素的循环排列数=A(n,m)/m!=n!/m!(n-m)!. n个元素被分成k类,每类的个数分别是n1,n2,...nk这n个元素的全排列数为 n!/(n1!×n2!×...×nk!). k类元素,每类的个数无限,从中取出m个元素的组合数为C(m+k-1,m)。

    例:

    排列:排队问题甲乙两人排队,先排甲,那么站法是甲乙,先排乙,那么站法乙甲,是两种不同的排法,和先排还是后排的顺序有关,所以是A(2,2)=2种
    组合:从甲乙两个球中选2个,无论先取甲,在是先取乙,取到的两个球都是甲和乙两个球,和先后取的顺序无关,所以是C(2,2)=1种

    总体说:
    考虑排列顺序的,是排列;
    不考虑排列顺序的,是组合。

  • 相关阅读:
    struts1.2一些知识
    iText的用法
    <action里的input的作用
    CSS超链接样式常见四种状态控制
    Win7系统IIS7+Tomcat7集成
    Marquee 使用方法详解
    JAVA中String与StringBuffer的区别
    2020 8 31 每日总结
    2020 10 1
    2020 9 30
  • 原文地址:https://www.cnblogs.com/-yan/p/4768863.html
Copyright © 2011-2022 走看看