【发布时间】:2011-04-02 13:43:20
【问题描述】:
我正在尝试找出最好的方法来为一个序列生成所有可能的排列,这个序列是一个固定的数字,每个数字都有不同的字母表。
我有许多整数数组,每个数组可以有不同的长度,在生成排列时,只有数组的值可以占据最终结果中的位置。
一个具体的例子是一个名为 conditions 的 int 数组,其中包含以下数据:
conditions1 = {1,2,3,4}
conditions2 = {1,2,3}
conditions3 = {1,2,3}
conditions4 = {1,2}
conditions5 = {1,2}
我想创建一个包含所有可能排列的 5 列表 - 本例为 144 (4x3x3x2x2)。第 1 列只能使用条件 1 中的值和条件 2 中的第 2 列等。
输出将是:
1,1,1,1,1
1,1,1,1,2
1,1,1,2,1
1,1,1,2,2
1,1,2,1,1
.
.
through to
4,3,3,2,2
自从我做这些事情以来已经太久了,而且我发现的大部分信息都与所有字段的相同字母表的排列有关。我可以使用它,然后在删除所有列具有无效值但听起来效率低下的排列后运行测试。
如果有任何帮助,我将不胜感激。
Z.
【问题讨论】:
-
写一些代码,你会遇到问题,然后提出问题——这样不是更容易吗?
-
我确实写了一些代码。问题是当每个条件长度相同时,代码运行良好。但是当我尝试上述不同的长度时,它就会崩溃。
-
然后显示代码,我们可以帮助您更改它以做正确的事情。 (顺便说一句,permutations 不是正确的词(因为您不更改顺序)- variation 会更合适。)
标签: java recursion permutation