'n'数字序列的排列

时间:2012-07-18 05:15:22

标签: algorithm math permutation

你可以用多少种方式安排一系列'n'(1到n)数字,使得索引上没有数字代表它的值?

例如

1 can not be at first position
2 can not be at second position
.
.
n can not be at nth position

请给出一般解决方案。也解决n = 6。 它不是作业。

3 个答案:

答案 0 :(得分:2)

您需要定点免费排列,也称为derangements。它们的数量公式比可能有固定点的排列数量稍微复杂一些。

答案 1 :(得分:2)

设P(n)为n数字的此类排列数。

For 123456....n
Cases are of the form

2*****
3*****
4*****
5*****
.
.
n*****

Now 1 can be anywhere at the rest (n-1) positions.
If 1 is put at the position of the number replacing it...

21****
3*1***
4**1**
.
.
n****1

then first and the replaced numbers are fixed.
Then total cases = (n-1) * P(n-2)

Else if
1 is also restricted not to be at a particular position (positions in above cases)
Then total cases = (n-1) * P(n-1)

所以

P(n)=(P(n-1)+ P(n-2))*(n-1)

,P(1)= 0

和P(2)= 1

答案 2 :(得分:1)

n事物的紊乱数量(定点无权置换)为round(n!/e),其中e是自然对数的基数。这里round表示最接近的整数函数。这在the Wikipedia article中有所描述,但其方式可以澄清。

对于n = 6,可以轻松计算round(264.87...) = 265紊乱。

实际上你已经问过a frequently covered question from MathSE