理解错排公式

n个信封n封信,全部装错,有多少种可能的错误方式?

在该例中,用数列F[n],表示n个信封时的错误方式数量,易得出F(1)=0,F(2)=1。所以应尝试用递推去解决。

当n个信封n封信全部装错的时候,假设第n号信封中装的是k号信,然后在剩下n-1封信中找到装有n号信封对应的n号信的m号信封,这里的m号信封有(n-1)种可能,将n号信封中的k号信和m号信封中的n号信交换,则n号信封中装的是n号信,m号信封装的是k号信,k号信有两种情况,一种是k等于m,即m号信封装的是m号信,这种情况下,m号信封和n号信封都装的是对应的信,所以此时有F(n-2)种错误可能(除了n和m别的都装错)。第二种情况是k不等于m,此时有F(n-1)种错误可能(除了n以外所有信封都装错)。

所以我们得出错排公式:F(n)=(n-1)(F(n-1)+F(n-2))。

时间: 2024-10-12 23:20:02

理解错排公式的相关文章

HDU 2068 RPG的错排(错排公式 + 具体解释)

RPG的错排 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8996    Accepted Submission(s): 3699 Problem Description 今年暑假杭电ACM集训队第一次组成女生队,当中有一队叫RPG,但做为集训队成员之中的一个的野骆驼居然不知道RPG三个人详细是谁谁.RPG给他机会让他猜猜,第一次猜

hdu 1465(不容易系列之一)(水题,错排公式)(a[n]=(n-1)*(a[n-1]+a[n-2]))

不容易系列之一 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14924    Accepted Submission(s): 6207 Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好"一件"事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总

杭电 1465 不容易系列之一(错排公式)

http://acm.hdu.edu.cn/showproblem.php?pid=1465 不容易系列之一 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14236    Accepted Submission(s): 5917 Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了

错排公式

1 递推的方法推导错排公式 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法: 第二步,放编号为k的元素,这时有两种情况⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有M(n-2)种方法:⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有M(n-1)种方法

错排公式 不容易系列之一

大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好"一件"事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样. 话虽这样说,我还是要告诉大家,要想失败到一定程度也是不容易的.比如,我高中的时候,就有一个神奇的女生,在英语考试的时候,竟然把40个单项选择题全部做错了!大家都学过概率论,应该知道出现这种情况的概率,所以至今我都觉得这是一件神奇的事情.如果套用一句经典的评语,我们可以这样总结:一个人做错一道选择题并不难,难的是全部

计数,排列错排公式

计数,排列Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Description Input Output Sample Input Sample Output Hint Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易

错排公式的学习

所谓错排,将一定数量的个体从它原来的位置换到一个非它原位置的方法总数. 错排可以利用递推来做,错排据了解也是可以直接利用组合数公式来做的,但是当 错排个体的数目巨大时,数据会非常的大. 因此即使利用递推,数组来存的方法做,仍要定义为long long 的数据类型,否 则数据会溢出. // 考察错排 #include <stdio.h> #include <stdio.h> long long f[30]; int main() { f[2]=1; f[3]=2; int i, n;

错排公式 错排(加组合)

递推的方法推导错排公式 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推. 第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法; 第二步,放编号为k的元素,这时有两种情况.1,把它放到位置n,那么,对于剩下的n-2个元素,就有M(n-2)种方法;2,不把它放到位置n,这时,对于这n-1个元素,有M(n-1)种方法; 综上得到 M(n)=(n-1)[M(n-2)+M

HDU 2068 RPG错排 错排公式

1.题意:1到N的序列的排列中,元素位置与元素值相对应的情况(值为i的元素在某个排列中正好排在第i个位置)大于等于序列规模一半的情况,有多少个? 2.输入输出:每组数据一个数,N,规定输入以0结尾: 3.分析:原题意换句话说,就是针对1到N的全排列,错排元素的个数小于等于N的情况有多少: 那么,输出即为:    ,其中F[i]表示1到i的错排方案数,后面一项为组合数,即选取i个错排: 这里推导一下错排公式,F[N]表示1到N的错排方案:第一步:选取N放到1到N-1之中任意一个位置,这样就有N-1