zoukankan      html  css  js  c++  java
  • 口胡排列与组合

    排列

    排列是分顺序的,比如集合({1,2,3,4,5})
    我们需要选出(3)个数
    就是(5*4*3):第一次有五个位置可选,第二次有四个位置可选,第三次有三个位置可选

    是与顺序有关的,也就是((1,2,3))((3,2,1))是有本质上区别的

    所以我们有排列公式,一个集合(S)(|S|=n),选(m)个数的排列:

    [A_n^m=n!/(n-m)! ]

    组合

    组合是不分顺序的,还是那个集合

    ((1,2,3))((3,2,1))是没有本质上区别的,也就是这时一种方案

    我们定义(C_n^m),为一个集合(S)(|S|=n),选(m)个数的组合:

    [A_n^m=C_n^m*A_m^mlongrightarrow C_n^m=dfrac{n!}{m!(n-m)!} ]

    再来几个性质加深下理解:

    • (sumlimits_{i=0}^nC_i^j=C_{n+1}^{j+1})
      理解:枚举(j+1)的右端点(i+1),则相当于从(i)个点中选(j)个点

    • (sumlimits_{i=0}^n C_{n}^i(m-1)^{n-i}=m^n)
      理解:把(n)个有区别的小球丢进(m)个有区别的盒子,等同于从(n)个小球里选(i)个,剩下的丢进(m-1)个盒子了

    可重集合的全排列

    我们在数学上的集合定义是非重集,可信息学里常常又要处理可重集(集合里的元素可重复)

    比如集合((1,2,2,3,4,4)),这便是一个可重集

    而此时可重集的排列其实也是与选择顺序有关的,但选第二个跟选第三个本质上是相同的

    (|S|)(k)种数字,分别有(n_1,n_2...n_k)个,求全排列
    我们可以形象地理解为:我们留出(n)个空位,每次把一种数字插进去的组合

    [egin{aligned}\ ans&=C_n^{n_1}*C_{(n-n_1)}^{n_2}...*C_{(n-n_1-n_2...-n_{k-2})}^{n_{k-1}}*C_{n_k}^{n_k}\ ans&=dfrac{n!}{n_1!n_2!...n_k!}\ end{aligned}]

    例题

  • 相关阅读:
    cat > file << EOF 的用法
    jemter参数化是如何取值的?(数据分配)
    使用elasticdump迁移es数据
    阿里云SLB的http强制转https
    Centos7主机安装Cockpit管理其他主机
    CentOS 7配置Chrony服务进行时间同步
    Nginx负载均衡设置max_fails和fail_timeout
    openresty(nginx) 配置 stream 转发
    rabbitmq的内存节点和磁盘节点
    nginx实现vue的web页面项目集群负载
  • 原文地址:https://www.cnblogs.com/y2823774827y/p/10577693.html
Copyright © 2011-2022 走看看