全错位排列递推分析

来源:互联网 发布:淘宝试用如何领取 编辑:程序博客网 时间:2024/05/16 00:29
全错位排列:即被著名数学家欧拉(Leonhard Euler,1707-1783)称为组合数论的一个妙题的“装错信封问题”。
“装错信封问题”是由当时最有名的数学家约翰·伯努利(Johann Bernoulli,1667-1748)的儿子丹尼尔·伯努利(DanidBernoulli,1700-1782)提出来的,大意如下:

一个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了信封,问都装错信封的装法有多少种?


分析:


假设有信封A,B,C,D...;信件1,2,3,4...;全部装错有f(n)种情况。

这里分两种情况考虑:①前面n-1个信封全部装错;②前面n-1个信封有一个没有装错其余全部装错。


①前面n-1个信封全部装错:

因为前面n-1个已经全部装错了,所以第n封只需要与前面任一一个位置交换即可,总共有f(n-1)*(n-1)种情况。

举例:假设有4个信封ABCD和4个信件1234;

那么前三个全部排错的情况为:312,213两种,加上4后变为3124,2134。4不能在自己位置,因此与前面位置交换即可,所以有4123,3421,3142,4312,2413,2341六种情况。


②前面n-1个信封有一个没有装错其余全部装错:

为什么考虑这种情况,因为n-1个信封中如果有一个没装错,那么我们把那个没装错的与n交换,即可得到一个全错位排列情况。

得到这种情况的种数也很简单,即是忽略掉那个没装错的情况去排列其他的信封的全错排种数f(n-2)*(n-1)。

举例:假设有4个信封ABCD和4个信件1234;

前三个为123,忽略1,剩下23,错排23就有32一种情况加上14即变为1324,再交换得到4321这种情况;

前三个为123,忽略2,剩下13,错排13就有31一种情况加上24即变为3214,再交换得到3412这种情况;

前三个为123,忽略3,剩下12,错排12就有21一种情况加上34即变为2134,再交换得到2143这种情况

共三种情况。


综上,f(n)=f(n-1)*(n-1)+f(n-2)*(n-1)=(n-1)*(f(n-1)+f(n-2));



0 0
原创粉丝点击