关注
查到一种递归的思想!!! 设长度为n的序列的全错位排列一共有f(n)种,假设我们已经解决了f(1)到f(n-1),那么当序列新增了一个元素an,显然全错位排列中该元素不能放在第n个位置上,假设该元素在从1到n-1的第i个位置,那么在新序列中第n个位置上的元素可能有两种情况: 第n个位置上的元素为ai 因为an和ai都不在原位置上,因此只需剩余的元素都是全错位排列,新序列就构成了全错位排列。那么除去ai和an还剩下n-2个元素,则这n-2个元素一共有f(n-2)种全错位排列,因为i的选择共有n-1种,因此该情况下一共有(n-1)*f(n-2)种全错位排列。 第n个位置上的元素不为ai 该种情况相当于,前n-1个元素做好了全错位排列,an与其中任意元素交换位置,新生成的序列也是一个全错位排列。这种情况下i的选择共有n-1种,n-1的元素的全错位排列共有f(n-1)种,因此该情况下一共有(n-1)*f(n-1)种全错位排列。 综合以上两种情况,f(n)=(n-1)f(n-2)+(n-1)*f(n-1)=(n-1)[f(n-2)+f(n-1)] 显然这个公式适用于n>2的情况,而f(1)=0,f(2)=1是之前已经列举得出的。 将n=3代入,得到f(3)=2*(0+1)=2,将n=4代入,得到f(4)=3*(1+2)=9,与列举所得到的结果相同。
查看原帖
点赞 1
相关推荐
牛客热帖
更多
正在热议
更多
# 26届的你们有几段实习? #
25247次浏览 322人参与
# 机械人,你拿到几个offer啦 #
37730次浏览 312人参与
# 你被哪些公司秒挂过? #
20936次浏览 189人参与
# 你后悔自己读研吗? #
10638次浏览 186人参与
# 如何提高实习转正率? #
8343次浏览 138人参与
# 设计人的面试记录 #
128740次浏览 1355人参与
# 月薪多少能在一线城市生存 #
12894次浏览 186人参与
# 面试体验感最好的是哪家? #
222159次浏览 2370人参与
# 你认为哪些项目算烂大街? #
10500次浏览 214人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
115494次浏览 802人参与
# 你以为的实习VS真实的实习 #
13974次浏览 142人参与
# 机械校招之路总结 #
92603次浏览 1891人参与
# 网申一定要掌握的小技巧 #
9852次浏览 66人参与
# 找工作时的取与舍 #
81694次浏览 584人参与
# 最难的技术面是哪家公司? #
6834次浏览 61人参与
# 你小时候最想从事什么职业 #
103187次浏览 1786人参与
# 产品实习,你更倾向大公司or小公司 #
158731次浏览 1962人参与
# 双非能在秋招上岸吗? #
219085次浏览 1159人参与
# 金三银四,你有感觉到吗 #
603697次浏览 5913人参与
# 机械制造岗投递时间线 #
23916次浏览 352人参与