【发布时间】:2015-06-03 21:37:42
【问题描述】:
这是我的第一篇文章,所以我会尽量让它清晰易懂。
我需要一些帮助来编写一个方法,该方法应该用从一个到给定值的所有数字组合填充一个 int [] (1D)。每次都可以覆盖这些值。举个例子。如果数组长度为 3,我希望数组的进程看起来像这样:
111、211、121、112、221、122、212、222、311、113、131、321、132、231、 ......
我认为分解它的最佳方法可能是忘记顺序(因此,如果数组是 211,则不需要 112),然后有一个单独的方法来置换数组和每个步骤。 所以我要创建的方法只需要使数组演变成这样:
111 211 221 222 311 321 322 332 333
然后我可以简单地在每个数组状态之间运行 permute 方法。
我设法制作了一个显示:
111 211 112 121 221 122 212 222 322 223 232 332 233 323 333 第433章……
这有所有的排列(这对于我现在要做的事情并不是必不可少的)但是当我编码它时,我并没有让数字实际上返回并涵盖每个组合(例如:311)(差异我的数组中的数字之间每次只有一个)
一些背景信息:我正在制作一个程序,通过在每个化合物前面添加正确的化学计量系数来平衡化学反应。 例如:_H20 + _02 = _H2O2
和 _ 表示系数的位置。 我有一个有效的方法来检查方程是否平衡,我需要设法尝试每个常数组合,直到方程平衡(或直到达到极限)。所以我决定用一个 int[] 来做这个,并从数组中填充方程系数。
如果有人感兴趣,我愿意发布有关我的程序的更多信息或详细信息,如果它可能有助于回答我的问题。
谢谢,期待您的回答/意见。
祝你好运!
【问题讨论】:
-
好的,到目前为止,您尝试了什么?您遇到的具体问题是什么?如果你有一些代码,你应该发布它。
-
“我设法制作了一个显示...的方法” 我们可以看到这个方法吗?
-
我查看了我的代码并意识到它甚至没有给出所有排列。我不能发布代码,因为它真的很杂乱而且写在 main 方法中,它还依赖于其他一些方法和类,我试图把它整理一下,以便更好地将它分成不同的方法,每个方法都有它们的用途,我认为它如果我重新启动并发布我管理的代码会更好。我想我也应该提供一些背景信息来说明我为什么想要这个数组;我将用这个编辑我的主要帖子。
标签: java arrays algorithm int combinations