这个应该用减法好点,应该是n!-C(n1)(n-1)!-C(n2)(n-2)!……C(nn)0!;
这个是我以前写的,以前的算法是不对的,因为我减去C(n1)(n-1)!的时候,没有考虑后后面(n-1)!是否匹配,正确的办法应该是这样的:
设n把钥匙开n把锁 一把锁没打开的情况有F(n)种;
一.1把锁不存在错,所以n<>1;
二.2把锁错的情况只有一种,即F(2)=1;
三.对于任意的n,我们可以先考虑其中的n-1把锁和钥匙,完全不匹配的情况种类有F(n-1)种,然后我们把第n把锁拿出来,把他的钥匙和其他任意一把钥匙对换,这样这n吧钥匙和锁就完全不对应了,得到的关系应该是F(n)=(n-1)*F(n-1),由递归关系可得F(n)=(n-1)!
我也认为应该用减法好点,应该是n!-C(n1)(n-1)!-C(n2)(n-2)!……C(nn)0!
n^2-1
(n-1)!