zoukankan      html  css  js  c++  java
  • 错排问题及其推广小结

    错排问题及其推广小结

    错排问题最早被尼古拉·伯努利和欧拉研究,因此历史上也称为伯努利-欧拉的装错信封的问题。
    问题1
        n个元素放入n个编号位置,其中第k号元素不能放在第k号位置的所有情况有多少种?    

    n = 1f(1) = 0;
         n = 2; f(2) = 1;
         n >= 3; f(n) = (n-1)*(f(n-1)+f(n-2));
         n12的情况很好求,对于n大于3的情况,我们可以这样理解:
            a:我们可以这样理解,对第n个元素,如果是(n-1)个元素原本符合要求,那么第n个元素和前(n-1)个元素都交换一次这是一种情况,(n-1)*f(n-1);
            b:也可以是在前(n-1)个元素中有一个元素不是错排的,即对第k元素的排列还是在第k个位置上,这时只要把kn交换也满足了条件,这是第二种情况,(n-1)*f(n-2);
        所以:f(n) = (n-1)*(f(n-1)+f(n-2));
        Tips:f(n)的通项公式为:f(n) = n![1-1/1!+1/2!-1/3!+……+(-1)^n*1/n!] 
        
    推广1
        k*n个人,每组k个人,共n组,坐到nk列共n*k个位置中,但若第i(i=1,2......n)组不能坐到第i(i=1,2......n)行中(组内成员可换位置).问:共有几种不同的坐法?    

    n = 1; f(1) = 0;
         n = 2; f(2) = A(k)*A(k);  //A(k)函数表示k个元素的全排列数
         n >=3; f(n) = A(k)*(n-1)*(f(n-1)+A(k)*f(n-2));
         n1时:第一组成员不能坐在第一行中,f(1)=0;
         n2时:第一组成员坐第二行,第二组成员坐第一行,f(2)=A(k)*A(k);
        n>=3时:
            a:对于第n列元素,如果前(n-1)列元素原本符合要求,那么第n列元素和前(n-1)列元素都交换一次,这种情况为A(k)*(n-1)*f(n-1);
            b:也可以是在前(n-1)列元素中有一列元素不是错排的,即对第k列元素的排列还是在第k列位置上,这时只要把第k列和第n列交换也满足条件,这种情况为A(k)*A(k)*(n-1)*f(n-2);
        所以:f(n) = A(k)*(n-1)*(f(n-1)+A(k)*f(n-2));


    推广2
        k*n个人,每组k个人,共n组,坐到nk列共k*n个位置中,但若第i(i=1,2......n)组不能坐到第i(i=1,2......n)行中,组内成员可换位置,但每组内第j人不能坐到第j列.问:共有几种不同的坐法?
        n = 1; f(1) = 0;
        n = 2; f(2) = D(k)*D(k);  //D(k)函数表示k个元素的全错排列数
        n >=3; f(n) = D(k)*(n-1)*(f(n-1)+D(k)*f(n-2));
        证明略~

     

    推广3
        编号为a11,a12,...a1k,......,an1,an2,...ankn*k个人(每组k个人,共n),坐到编号为b11,b12,...b1k,......bn1,bn2,......bnkn*k个位置中(nk), 但编号为aij的人不能坐到编号为aij的位置中,问:共有几种不同的坐法?
        Tips:此问题实际上就是n*k个数的错排问题。
        t = n*k;
        t = 1;  f(1) = 0;
        t = 2;  f(2) = 1;
        t >=3;  f(t) = (n-1)*(f(t-1)+f(t-2));

     

  • 相关阅读:
    使用OpenSSL自建一个HTTPS服务
    工程实践项目中的需求分析建模—问答系统后端
    代码中的软件工程—分析一个命令行菜单小程序
    Git多人项目开发流程演练
    Docker笔记
    Nginx+Gunicorn+Supervisor部署Flask应用
    Python协程之asyncio
    Python类元编程
    搬家到博客园啦
    Spring boot Security 登陆安全配置
  • 原文地址:https://www.cnblogs.com/ruo-yu/p/4411941.html
Copyright © 2011-2022 走看看