java - 整数数组 : fill with all combinations of numbers from one to a give number

标签 java arrays algorithm int combinations

这是我的第一篇文章,所以我会尽量让它清晰易懂。

我需要一些帮助来编写一个方法,该方法应使用从 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/

相关文章:

java - Apache HttpClient : how to send headers along with CONNECT request

java - 如何在 TestNG 报告中包含 Log4j2 消息

c# - 字符串未正确拆分

javascript - 使用 JavaScript 交换 API

java - 如何为 Android 中所有单选按钮组中的所有单选按钮设置背景

java - PHP变量到Java小程序?

javascript - 通过 jquery 推送 javascript 数组

c++ - 英特尔 MKL 是否支持 Armadilo、Eigen 或 Biltz++?

algorithm - 优秀的开发人员应该知道哪些核心数学概念?

algorithm - 反向操作到 "Union and find"