zoukankan      html  css  js  c++  java
  • <组合数学>排列组合(2)/可重组合,不相邻组合,SJT算法

    1.圆排列和项链排列

      我记得上高中的时候,做题的时候就遇到过圆形排列组合的题,我们高中不学圆排列和项链排列,当时也不敢问这是怎么回事,老师讲课的时候就照本宣章,我们就按照套路解题。
      圆排列问题最早出现在中国《易经》的四象八卦组合。“四象”就是每次取两个爻的排列,“八卦”是每次取三个爻的排列。“求八卦的排列数有多少”就跟“八人围坐一张圆桌而坐,问有多少种不同坐法”类似。
     
    圆排列问题——从n个元素取出r个,围成一个r元素的圈,问有多少种排列方法。
    我们可以这样想,把圆排列通过剪开变成线排列之后,每种线排列有n!种排法,总共有r种剪法,故圆排列的排列数为 P(n,r) / r
    从n个中取r个的圆排列的排列数为 P(n,r)/r    3<=r<=n
    我们把问题引申到项链上,给n个互不相同的珠子,取其中r个珠子串成一条项链,那么总共有多少种可能的项链。
    圆排列是在2D空间上,它的方位是固定的,而项链排列是在3D空间上它可以任意翻转,所以一种项链排列方式都对应着多个圆排列方式。
    从n个中取r个的项链排列的排列数为 P(n,r)/2r    3<=r<=n
     
     
     
     

    2.多重排列

    ————给你26个字母,让你用它们组成一个长度为8的字符串,字母可以重复使用,问可以组成多少种字符串?
    ————  8^26
     
    多重全排列:有若干个元素,r1个1,r2个2,......, rt个t,元素的个数之和为n,那么它的全排列被记为 P(n;r1,r2,....rt)
    P(n;r1,r2,....rt)=n! / ( r1!r2!....rt! )
     
    ————求(2a+b+c)^6 展开式中a2b2c2的系数为?
    ———— (6!/2!2!2!)*   2^2      =360
     

    3.可重组合

     

    4.不相邻组合

     
     
     

    5.钟声里的全排列

     
     
     

    6.SJT算法

     
  • 相关阅读:
    T4模板+Web.config连接SqlServer+DBManage.cs+DbHelper.cs
    MVCApplication
    MVC路由(Route)
    过滤器+用session验证是否登陆过
    前台.cshtml得到session值方法
    C++ sort() method with 1.default operator,2 stand library compare ,3custom function,4,lambda expression
    C++ boost serialize struct to text
    C++ multi thread via pthread to retrieve returned result
    C++ pthread create and join
    C++ write and read file via fstream in ios::out,ios::in,ios::app mode
  • 原文地址:https://www.cnblogs.com/dynmi/p/12290685.html
Copyright © 2011-2022 走看看