zoukankan      html  css  js  c++  java
  • 错排公式

    错排问题

      错排问题是组合数学中的问题之一。一个含有n个元素的排列,若这个排列中所有的元素都不在自己原来的位置上,那么这样的一个排列就是原排列的一个错排。

    求解方法

      对于情况较少的排列,可以使用枚举法。

      当n=1时,只有一种排列情况且不是错排,D1=0;

      当n=2时,全排列有两种,1、2和2、1,后者是错排,D2=1;

      当n=3时,全排列有3!=6种,错排有两种,D3=2;

      D4=9、D5=44、D6=265……

      对于排列数比较多时,枚举的方法就不合适了,可以用递推思想推导。

      当n>=3时,我们假设数字n在第k个位置上,这时k必须满足1≤k≤n-1。此时有两种情况:

        1.数字k在第n个位置上时,n和k唯一确定了,且满足错排条件。剩下n-2个数字,即Dn-2

        2.数字k不在第n个位置上,此时有n-1个数字的错排情况,即Dn-1

      所以对于每一种确定的k值,有Dn=Dn-1+Dn-2,又由于k有n-1个符合的值,所以最终结论是

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


    例题

      hdu2048——基础题

      hdu2049——简单应用,组合数+错排

  • 相关阅读:
    【noip模拟赛10】奇怪的贸易 高精度
    【noip模拟赛8】魔术棋子
    【noip模拟赛7】足球比赛 树
    P2502 [HAOI2006]旅行 并查集
    python发邮件:
    读取excel表格.py
    allure的其他参数
    生成allure测试报告:
    Java
    调用阿里云接口实现短信消息的发送源码——CSDN博客
  • 原文地址:https://www.cnblogs.com/friend-A/p/9691504.html
Copyright © 2011-2022 走看看