全错位排列问题

问题描述

这是一个很经典的数学问题:有一个人写了n封信件,对应n个信封,然而粗心的秘书却把所有信件都装错了信封,那么一共有多少种装错的装法?

数学抽象

这个问题可抽象为以下一个数学问题:已知一个长度为n的有序序列{a1,a2,a3,…,an},打乱其顺序,使得每一个元素都不在原位置上,则一共可以产生多少种新的排列?
例如:原序列为{a,b,c,d,e},则新序列{b,c,d,e,a}为其一个全错位排列,新序列中每一个元素都不在原来的位置上。

问题解决

首先考虑几种简单的情况:

  • 原序列长度为1
    序列中只有一个元素,位置也只有一个,这个元素不可能放在别的位置上,因此原序列长度为1时该为题的解是0。
  • 原序列长度为2
    设原序列为{a,b},则全错位排列只需将两个元素对调位置{b,a},同时也只有这一种可能,因此原序列长度为2时该问题的解是1。
  • 原序列长度为3
    设原序列为{a,b,c},则其全错位排列有:{b,c,a},{c,a,b},解是2。
  • 原序列长度为4
    设原序列为{a,b,c,d},则其全错位排列有:{d,c,a,b},{b,d,a,c},{b,c,d,a},{d,a,b,c},{c,d,b,a},{c,a,d,b},{d,c,b,a},{c,d,a,b},{b,a,d,c},解是9。

随着n的增大,该问题的解也迅速增大,使用列举的方法进行求解显然是不明智的。数学家欧拉给了我们一种解决该问题的递推公式&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值