对于特定的 N 位数字,存在多少种不同的数字排列?

问题描述 投票:0回答:1

问题很简单。我们有一个 N 位的数字 (N <= 18),我们需要知道这个数字的所有可能的不同组合。例如,数字 214 (N = 3) 的答案是 6(您可以创建 214、241、124、142、412、421)。我正在寻找一种计算这个的算法。

我注意到,对于 N 位数字,不同数字的最大数量等于 N!。 然而,当数字不明确时,我不知道这个东西是如何工作的。我尝试了几种方法,例如尝试编写公式来制作它或编写代码,但没有任何效果。

algorithm math language-agnostic permutation number-theory
1个回答
2
投票

将会是

N! / (#0! * #1! * #2! * #3! * #4! * .. * #9!)

#d
d

N!
是不同元素的排列总数。

考虑

1a
1b
作为区分
1
,我们必须将
N!
除以
1
的排列数(也适用于其他数)。

所以对于

1112235
来说就是

7! / (3! * 2! * 1! * 1!)
(忽略
0!
,即
1

© www.soinside.com 2019 - 2024. All rights reserved.