我有数学问题。我正在研究一个可以接受5个参数的软件。虽然我已经测试过系统可以在单独输入和系统重置时处理这些参数,但现在我需要验证系统是否可以处理不同输入序列的输入,例如工作多少个序列/排列?
用户可能输入[1] ,[2],[3],[4],[5]或他们可能[2],[4],[5],[1],[3]
我想要的第一步实现是计算出可能有多少种组合?任何指针?
我有数学问题。我正在研究一个可以接受5个参数的软件。虽然我已经测试过系统可以在单独输入和系统重置时处理这些参数,但现在我需要验证系统是否可以处理不同输入序列的输入,例如工作多少个序列/排列?
用户可能输入[1] ,[2],[3],[4],[5]或他们可能[2],[4],[5],[1],[3]
我想要的第一步实现是计算出可能有多少种组合?任何指针?
如果有n
参数,总共有n!
排列。或者至少这么多,如果省略一些论点可能是相同的。为了删除重复项,请按参数值对参数进行分组。
比方说,有中值x_0
n_0
倍,......,价值x_i
n_i
倍,......,价值x_m
n_m
倍。所以总共有
(n_0 + n_1 + ... + n_m)!
------------------------
n_0! * n_1! * ... * n_m!
当你有n
数字,至少n!
排列存在。
在你的情况,你想一组的排列,从而总数为:
(n_1 + n_2 + n_3 + n_4 + n_5)!
-------------------------------
n_1! * n_2! * n_3! * n_4! * n_5!
了解更多关于在排列Wikipedia。
我投票结束这个问题作为题外话,因为它是关于[math.se]而不是编程或软件开发。 – Pang