错排问题:
一个n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的一个排列就称为原排列的一个错排。而研究一个排列的错排个数的问题,就称为错排问题(或称为更列问题)。
错排公式:
D[1]=0;
D[2]=1;
D[n]=(n-1)(D[n-1]+D[n-2])推导:
对于第
i个元素,若不在自己的位置上,则有n - 1种情况,取其中一种进行分析:不充设定:取
x -- y为第x个元素分到了第y个元素的位置上
- 若
i -- k且k -- i(互换位置),那么将这两个组合剔除,
剩下的n - 2个元素将继续进行错位排序,共D[n - 2]种方案。- 若
i -- k,但k !- i,那么我们将i -- k这个组合剔除,
剩下的这n - 1个元素继续进行错位排序,共D[n - 1]种方案。
(将第k个位置与i重新进行配对。因为每个元素不能放在自己对应的位置上,这个组合刚好又满足这个条件)
[笔记] 错排问题 #错排
Y.YL2023-11-22 15:06
相关推荐
希和20275 小时前
考研英语阅读词汇笔记|城市野径、抄近道步道(非正式小路)Dream it possible!8 小时前
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)心抵鹊8 小时前
算法之双指针系列(一)一个人旅程~8 小时前
关于imac27inch因改短用户名导致混合硬盘和系统崩溃的问题分析与故障解决十二8 小时前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)心祭丫丫9 小时前
【每天一个 Python 小案例17】Python 实现通讯录小此方9 小时前
[算法实战论:动态规划]回文串问题的dp解法,回文串问题的母题,以及以此为基础的派生题Pniubi10 小时前
力扣560.和为k的子数组D e re k ZH10 小时前
C++ 从零入门(一):基础语法与程序结构派大猩猩_11 小时前
Obsidian 笔记怎么同步多端:Nutstore Sync 大笔记库同步测评