[笔记] 错排问题 #错排

参考:刷题笔记-错排问题总结

错排问题:

一个n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的一个排列就称为原排列的一个错排。而研究一个排列的错排个数的问题,就称为错排问题(或称为更列问题)。
错排公式:
D[1]=0;
D[2]=1;
D[n]=(n-1)(D[n-1]+D[n-2])

推导:

对于第i个元素,若不在自己的位置上,则有n - 1种情况,取其中一种进行分析:

不充设定:取x -- y为第x个元素分到了第y个元素的位置上

  1. i -- kk -- i(互换位置),那么将这两个组合剔除,
    剩下的n - 2个元素将继续进行错位排序,共D[n - 2]种方案。
  2. i -- k,但k !- i,那么我们将i -- k这个组合剔除,
    剩下的这n - 1个元素继续进行错位排序,共D[n - 1]种方案。
    (将第k个位置与i重新进行配对。因为每个元素不能放在自己对应的位置上,这个组合刚好又满足这个条件)
相关推荐
颜酱1 小时前
二叉树分解问题思路解题模式
javascript·后端·算法
qianpeng8972 小时前
水声匹配场定位原理及实验
算法
tingshuo291713 小时前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
董董灿是个攻城狮14 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
AI软著研究员21 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish21 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
颜酱1 天前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法
地平线开发者2 天前
SparseDrive 模型导出与性能优化实战
算法·自动驾驶
董董灿是个攻城狮2 天前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者2 天前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶