zoukankan      html  css  js  c++  java
  • AA3-1-概率论思维题马后炮

    概率论与数理统计:

        今天的习题课。一个学长给我们介绍了一道题。有n封信装到n个信封里。怎样求出方法数。回来之后我又自己考虑了一下。得出了一个能让自己确信的解答。首先让学长给了提示。这道题应该用递推的方式去求解。也就是说需要求出Dn和前一项或前两项之间的递推式。那么首先。假设先放第1封信。第1封信可以放在除了1之外的n-1个位置上。假设被放的那封信封是k。那么剩余的n-2封信以及第k封信会一起进行错排。但是第k封信的性质跟其他的性质是不一样的,因为他永远都不会对位。而其他的信有两种状态,一个是可以对位,一个是不能对位。因此他们不能用一个式子来表示。需要分情况讨论。首先,假如第k封信放到了第1封信的信封处。那么剩余的信 n-2封信性质相同,刚好可以一起错排,就是Dn-2。假如第k封信没有放到第1封信的信封处。也就是说第k封信不能放到第1封信的信封处。他就可以跟剩余的n-2封信放在一起错排。因为此时他们都具有两种状态,一个是可以错排,一个是不能错配。其余的n-2封信放到他们对应的对位上。就等价于这第k封信放到第1封信信封处。因为这两个行为是同样被禁止的。而这两种信的期望行为都是错位。因此他们的期望是相同的。所以在这个问题的背景下,这两种信可以等价起来。因此剩余的n-2封信可以与第k封信一起进行错排,也就是Dn-1。而这样的k有n-1个,于是:

        Dn=(n-1)(Dn-1+Dn-2)

        这给了我一个启示:如果问题分解中有可列举的同状态、同期望元素,这样的过程如果嵌套,那么就可以分类递归。而且也最好分类递归否则会导致错误。

  • 相关阅读:
    常见的几种性能测试指标及计算公式
    性能测试分析
    性能测试的流程
    性能测试的基本知识
    Python的深拷贝、浅拷贝
    Http基础知识
    求List<int>中相等且连续的偶数的索引
    unity资源打包之后配置的生成
    unity在资源打包的时候,关于 hash 计算的简单总结
    C#中string.Join的用法
  • 原文地址:https://www.cnblogs.com/PRCdefender/p/13820938.html
Copyright © 2011-2022 走看看