• 数论 错排问题 信封问题


    什么是错排问题?

      十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?

      写信时将n封信装到n个不同的信封里,有多少种全部装错信封的情况?

    错排公式:

      拿信封问题举例子:
      设 Fn 为n封信都装错的情况 ( 信封编号 与 信的编号 各不对应)
      第一步
        手里有一封编号为 A 的信,把它放到 n 封信封中,因为不能放到位置 A , 所以共有 n-1 种放法。
     
        A( × )
        B( √ )  <= 可以放
        C( √ )  <= 可以放
        ......    ......
        N( √ )  <= 可以放
        总共 N-1 种。
     
     
      第二步
        假设 编号为 A 的信 放入了编号为 B 的信封。
     
        A(    )
        B( A )  
        C(    )  
        ......
        N(    )  
     
        那么 现在放编号为 B 的信, 就有两种情况。
        ⑴放到位置 A, 这时候相当于信 A 与 信 B 交换位置,那么剩下 n-2 封信,就有 F(n-2) 种放法。
     
        A( B )
        B( A )  _
        C(    )  |
        ......     |  N-2种  
        N(    )  |
     
        ⑵不放到位置 A, 这时候相当与把 n-1 封信 放到 n-1 个不同的信封中,即 F(n-1) 的情况,那么有 F(n-1) 种方法。
        
        A( B )
        B(    )  _
        C(    )  |
        ......     |  N-1种  
        N(    )  |
     
      总计有 F(n-1) + F(n-2)种
      结合第一步,得到
        F(n) = (n-1) [F(n-2) + F(n-1)]  
        F(1) = 0, F(2) = 1.
  • 相关阅读:
    前端中不同页面之间传递参数的几种方式
    js中的闭包内存图
    【JavaScript基础】js中关于声明提前的几个误区
    【面试】前端面试题
    js继承的几种方式
    原生Ajax实现异步交互
    git基本使用
    一个简单的SSM框架实例(使用IDEA)
    高安全性的JavaScript
    高性能的JavaScript
  • 原文地址:https://www.cnblogs.com/--zz/p/10544663.html
Copyright © 2020-2023  润新知