错排问题:
一个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
相关推荐
Voyager_41 小时前
算法学习记录03——二叉树学习笔记:从两道题看透后序位置的关键作用我先去打把游戏先3 小时前
ESP32学习笔记(基于IDF):ESP32连接MQTT服务器我搞slam6 小时前
快乐数--leetcodeWWZZ20257 小时前
快速上手大模型:机器学习3(多元线性回归及梯度、向量化、正规方程)四谎真好看8 小时前
Java 黑马程序员学习笔记(进阶篇18)东方佑8 小时前
从字符串中提取重复子串的Python算法解析西阳未落8 小时前
LeetCode——二分(进阶)通信小呆呆8 小时前
以矩阵视角统一理解:外积、Kronecker 积与 Khatri–Rao 积(含MATLAB可视化)报错小能手9 小时前
linux学习笔记(45)git详解CoderCodingNo9 小时前
【GESP】C++四级真题 luogu-B4068 [GESP202412 四级] Recamán