• 置换、排列、组合、递归


    置换

      将n个事物按顺序进行排列称为置换。

      题: 如果将A、B、C这三张牌按照ABC,ACB,BAC...等顺序排列,那么共有多少种排法?

      解: 第一张,有ABC三种选法 第二张,除了第一张之外的另外两张选法 第三种,只有一种剩下的选法

      3*2*1=6种

    阶乘

      5!=5*4*3*2*1

      10!=10*9*8*7*6*5*4*3*2*1

      1!=1

      0!=1

    归纳

      n张牌的置换总数一般用以下等式来表示

      n!=n*(n-1)*(n-2)*...*2*1

    排列

      题: 从5张牌中取3张进行排列 现你手上有ABCED五张牌,要从这五张牌中取三张进行排列,请问有多少中排法?

       

    归纳

      假设从n张牌中取k张进行排列

      第一张是“从n张取1”,因此有n种方法 第二张的取法 有n-1种 第三张的取法 有n-2种 . . . 第k张的取法 有n-k+1 因此,从n张牌中取k张进行排列的总数是

      n*(n-1)*(n-2)*(n-3)*...*(n-k=1)

    组合

      置换和排列都需要考虑顺序,而不考虑顺序的排列就是组合

      题: 假设现有A、B、C、D、E五张牌,要从五张中选三张牌,并且不考虑他们的顺序。如 ABC、ACB、BAC应视为一组。

      思路: 1 计算出排列总数 2 除去重复数

    归纳

      球出n张牌中取k张的组合合数

        

        

    递归

  • 相关阅读:
    python类的继承
    Numpy float64和Python float是一样的
    ndarray的用法总结
    pandas的Panel类型dtype
    C++中类的前向声明
    numpy的searchsorted细品
    发现Boost官方文档的一处错误(numpy的ndarray)
    C++读取dll文件所在目录
    64位的pyd报"ImportError: No module named"错误
    WIN32,_WIN32_WIN64
  • 原文地址:https://www.cnblogs.com/Jolinson/p/3620569.html
Copyright © 2020-2023  润新知