gpt4 book ai didi

java - 是否可以分发递归算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:29 24 4
gpt4 key购买 nike

我不确定如何分发递归程序。现在它是递归的并作为一个程序运行,但我的目标是将这个程序分发给其他只生成数据子集的机器。

这是该计划的背景。我给它一个目标(在本例中为 10)和一个具有最小/最大重量的项目列表,它返回每个项目的组合。

所以有 3 个项目,并且

Low = 2, 2, 2
high = 6, 6, 6
Target = 10

结果是:

2 2 4
2 3 3
2 4 2
3 2 3
3 3 2
4 2 2

这是完成工作的方法:

void distribute (int i, int [] low, int [] high, final int rest, int [] sizes) {
// System.out.println (i + " " + rest + " " + sizes);
if (i == sizes.length - 1) {
if (rest < high [i]) {
sizes[i] = rest;
result.add (Arrays.copyOf (sizes, sizes.length));
}
}
else
for (int c = 0;
c <= java.lang.Math.min (high [i] - low [i], rest);
++c) {
sizes [i] = c;
distribute (i + 1, low, high, rest - c, sizes);
}
}

我想知道是否有人对如何分发输出有任何想法,所以在上面的示例中,如果我有 3 个服务器,每个服务器只生成 2 个唯一的条目,而不必生成整个条目。说,我事先知道会有 6 个结果,并且希望将 2 个分配给每台机器,我该怎么做。这可能吗?如果可能,逻辑是什么?

如果有帮助,这里是整个程序:http://pastebin.com/RikqPgKh

最佳答案

我想你想在多台机器上运行算法,然后合并结果。您只需要拆分执行即可。这应该不会太难,因为参数已经限制了结果。

例如,代替 L:[2,2,2] H:[6,6,6] 执行

L:[2,2,2] H:[3,6,6]
L:[4,2,2] H:[5,6,6]
L:[6,2,2] H:[6,6,6]

关于java - 是否可以分发递归算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com