的欧拉数 A(n, m)
是排列的数量[1, 2, ..., n]
精确地在其中m
元件是比以前的元件大。这些也称为上升。例如,如果,则为n = 3
3!= 6个排列[1, 2, 3]
1 2 3
< < 2 elements are greater than the previous
1 3 2
< > 1 ...
2 1 3
> < 1 ...
2 3 1
< > 1 ...
3 1 2
> < 1 ...
3 2 1
> > 0 ...
因此A(3, m)
,m
in 的输出[0, 1, 2, 3]
将是
A(3, 0) = 1
A(3, 1) = 4
A(3, 2) = 1
A(3, 3) = 0
同样,这是OEIS序列A173018。
规则
- 这是代码高尔夫球,因此最短的代码获胜。
- 输入
n
将是非负整数,并且m
将是range内的整数[0, 1, ..., n]
。
测试用例
n m A(n, m)
0 0 1
1 0 1
1 1 0
2 0 1
2 1 1
2 2 0
3 0 1
3 1 4
3 2 1
3 3 0
4 0 1
4 1 11
4 2 11
4 3 1
4 4 0
5 1 26
7 4 1191
9 5 88234
10 5 1310354
10 7 47840
10 10 0
12 2 478271
15 6 311387598411
17 1 131054
20 16 1026509354985
42 42 0
n = 10
。
m
如果需要,您的解决方案可以支持任何方法,但我只要求它对于0 <= m <= n和0 <= n才有效。
n, m
什么限制吗?