【发布时间】:2013-11-05 12:58:46
【问题描述】:
我正在尝试编写一个程序来打印具有 8 个变量的所有可能排列,其中每个变量都有多个选择。 例如。我有
A = {"A1"} //has only one choice
B = {"B1", "B2", "B3", "B4"} // has 4 choices
C = {"C1", "C2"} //has 2 choices
:
:
I = {"I1", "I2", "I3", "I4"} //has 4 choices
我的输出应该是这样的形式:A-B-C-D-E-F-G-H-I,每个变量都有所有可能的选择,并且顺序应该是一样的。
A1-B1-C1-D1-E1-F1-G1-H1-I1
A1-B2-C1-D1-E1-F1-G1-H1-I1
A1-B3-C1-D1-E1-F1-G1-H1-I1
A1-B4-C1-D1-E1-F1-G1-H1-I1
A1-B1-C2-D1-E1-F1-G1-H1-I1
etc.
我在这里查看了所有其他问题,但我无法确定是否可以为此使用内置的 java 排列类。我尝试编写一个递归程序,但在尝试将每个选择分解为所有可能的输出时被卡住了。感谢有关如何在 java/c++/vba 中完成此操作的任何提示,因为语言不是考虑因素。谢谢!
【问题讨论】:
-
为什么要搞乱递归,听起来像是简单嵌套循环的工作
-
我不确定我是否理解您的示例输出
-
@Leeor - 九层嵌套。在嵌套级别上递归可能更容易。
-
您的问题与除“算法”之外的任何标签无关。从那开始:用文字写下你想要发生的过程,就像你在给出指示一样。一旦您对此感到满意,请从您知道的语言中选择一种语言。
-
@TedHopp,它可能看起来很糟糕,但更容易理解和维护,更安全(破坏条件可能会变得讨厌),并且更少的堆栈滥用。但是你确实使用了一个不错的技巧,+1 :)
标签: java c++ algorithm excel vba