2017-08-31 60 views
0

我有数学问题。我正在研究一个可以接受5个参数的软件。虽然我已经测试过系统可以在单独输入和系统重置时处理这些参数,但现在我需要验证系统是否可以处理不同输入序列的输入,例如工作多少个序列/排列?

用户可能输入[1] ,[2],[3],[4],[5]或他们可能[2],[4],[5],[1],[3]

我想要的第一步实现是计算出可能有多少种组合?任何指针?

+0

我投票结束这个问题作为题外话,因为它是关于[math.se]而不是编程或软件开发。 – Pang

回答

0

如果有n参数,总共有n!排列。或者至少这么多,如果省略一些论点可能是相同的。为了删除重复项,请按参数值对参数进行分组。

比方说,有中值x_0n_0倍,......,价值x_in_i倍,......,价值x_mn_m倍。所以总共有

(n_0 + n_1 + ... + n_m)! 
------------------------ 
n_0! * n_1! * ... * n_m! 

  1. https://en.wikipedia.org/wiki/Permutation#Permutations_of_multisets
0

当你有n数字,至少n!排列存在。

在你的情况,你想一组的排列,从而总数为:

(n_1 + n_2 + n_3 + n_4 + n_5)! 
------------------------------- 
n_1! * n_2! * n_3! * n_4! * n_5! 

了解更多关于在排列Wikipedia