这是我的第一篇文章,所以我会尽量让它清晰易懂。
我需要一些帮助来编写一个方法,该方法应使用从 1 到给定值的所有数字组合填充 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
然后我可以简单地在每个数组状态之间运行置换方法。
我设法制作了一个显示的方法:
111 211 112 121 221 122 212 222 322 223 232 332 233 323 333 433...
这有所有的排列(这对我现在要做的事情来说不是必需的)但是当我编码它时我并没有让数字实际上返回并涵盖每个组合(例如:311)(差异我数组中的数字之间每次只有一个)
一些背景信息:我正在编写一个程序,通过在每种化合物前添加正确的化学计量系数来平衡化学 react 。 例如:_H20 + _02 = _H2O2
和 _ 表示系数的位置。 我有一个功能性方法来检查方程式是否平衡,我需要设法尝试常数的每个组合,直到方程式平衡(或直到达到极限)。所以我决定用一个 int[] 来做到这一点,并从数组中填充方程系数。
如果有人感兴趣或者可能有助于回答我的问题,我愿意发布有关我的程序的更多信息或细节。
谢谢,期待您的回答/意见。
祝你好运!
最佳答案
我不确定 java 是否有 next_permutation 方法,但在 c++ 中很容易使用此函数,这是一个指南,您可以在其中使用 c++ 实现,我希望这对您有所帮助。这是链接:http://www.cplusplus.com/reference/algorithm/next_permutation/
但您也可以阅读此博客:http://codeforces.com/blog/entry/3980这解释得很清楚你想做什么。
关于java - 整数数组 : fill with all combinations of numbers from one to a give number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353540/