简介
假设现在我有三个信封A,B,C,并且现在有三个信纸a,b,c。
按照道理的话是,a塞入A信封,b塞入B信封,c塞入C信封。
但是现在,想要问,对于a,b,c全部塞错的情况,有多少种呢?
比如把b塞入A,把c塞入B,把a塞入C就是一种。
解析
对于这个问题,自己推导的时候就卡在了一个很关键的地方,让我怎么也想不明白,后来看了答案后,虽然知道了最终公式是什么,但是网上的“容易得出”,或者干脆略过小熊这个🐷脑袋怎么也想不明白。
让我们先来看看这个问题,现在,我们记错排公式为 D ( N ) D(N) D(N):有N个信封和N个信纸的所有错误排列个数。
小熊是这样推导的:
现在假设我们有,求 D ( N ) D(N) D(N):
(A)(B)(C)(D)…(N)
这几个信封,并且有如下几个信纸:
a、b、c、d…、n
那我首先知道,对于未来所有的结论,第一列应该是:
b…
c…
d…
…
n…
这么多行,应该总共是 n - 1 行,所以先记录在这里。
那么对于每一行,我想答案应该是相同的,因为它具有对称性(比如,你只需要改改名字)。
下面来看第一行
b…
情况一 这说明,我们在把b信纸塞入(A)信封中,现在,若把a塞入(B)中,也就是a和b的对应信封调换了一下位置,那么剩下的(C)、(D)、(E)、…和信纸c、d、e、…就是一个新的问题,为 D ( N − 2 ) D(N-2) D(N−2)。
以上是第一种情况,那么对于a信纸不塞入(B)信封中的情况呢?
现在我们有信纸是:a、c、d、…n,因为b已经被塞入了,先别动。
情况二 那我们考虑,把信纸a换一个名字,现在悄悄改为b,这样现在我们有信封(B)、(C)、(D)、…和信纸b、c、d、…n来参与全错位的排列。可以肯定的是,最终结果排列中,每一种排列的b都不会塞入进(B)中,每一种排列的c也不可能塞入(C)中, 所以现在,我再把b的名字悄悄改为a,so~,现在,a不会塞入(B)中,并且我们也统计到了这种情况的所有错位排列。这是情况二。
综合考虑了情况一和情况二,现在我们可以大胆的写出公式了。
递推公式
D ( N ) = ( N − 1 ) ∗ [ D ( N − 2 ) + D ( N − 1 ) ] D(N)=(N-1)*[D(N-2)+D(N-1)] D(N)=(N−1)∗[D(N−2)+D(N−1)]
其中肉眼可见: D ( 1 ) = 0 , D ( 2 ) = 1 D(1)=0,D(2)=1 D(1)=0,D(2)=1
附录
因为卡住了D(n-1)这个东西是怎么来的,浪费了快两个小时的时间呜呜。
如果喜欢的话,请点赞~