给出一个从0到N的整数的数组,有多少种排列方式,使得在数组的位置i上不能插入i?
例如,N = 2
以下安排有效:
- 1,2,0
- 2,0,1
因此,答案是2种安排
我想不出一种非蛮力方法在O(1)时间内做到这一点,有人可以帮我吗?
答案 0 :(得分:7)
这种排列方式称为排列。 Wiki page包含许多公式来对其进行计数。例如,重复发生:
!n=(n-1)(!(n-1)+!(n-2))
其中!n
(称为子因子)代表排列的次数,起始值为!0 = 1
和!1 = 0