找到Stirling numbers of the first kind有一个着名的递归关系,即
C(n,k) = C(n-1,k-1)+(n-1)*C(n-1,k).
这是解决以下问题的方法:
给定一组
N
个不同的数字,该集合中存在多少个不同的排列,以确保从左到右最大值K
?
这不是很难,但以下几点变化:
给定
N
个数字的多个集合(不一定是不同的),该集合存在多少个不同的排列,以确保从左到右的最大值K
?
示例:
让多重集合为S = {1,2,2,3}
[注意:两个2
在置换时应被视为不相同]和K = 3
。然后,以下排列:
<1 2 2 3>
<1 2 2 3>
<1 2 3 2>
<1 2 3 2>
满足所需条件。因此,答案应该是4(我们不需要找到所有的排列,但我们对这种排列的数量感兴趣)。
注意:当且仅当在其之前发生的所有元素严格小于它时,才应将元素视为最大值。例如,在上面的示例<1 2 2 3>
中,第二个2
不是最大值,而是第一个2
。因此,这种安排满足K = 3
(不是K = 4
)。