【发布时间】:2013-02-18 13:03:19
【问题描述】:
我想多次运行我的函数并获得不同的答案(因为它处理随机数),并从所有可能的答案中获得最小值。但是该函数总是返回相同的值。如何纠正循环以每次得到不同的答案并找到它们的最小值? 这是我的代码
int n = 0;
KargerMinimumCut karger = new KargerMinimumCut();
ArrayList<Integer> answers = new ArrayList<Integer>();
for(int i = 0; i < 10; i++) {
n = karger.minCut(vertices);
answers.add(n);
}
int min = minimum(answers);
System.out.println("Minimum Number is: " + min);
最小函数
public static int minimum(ArrayList<Integer> array) {
int min = array.get(0);
for(int i = 1; i < array.size(); i++) {
if(array.get(i) < min)
min = array.get(i);
}
return min;
}
【问题讨论】:
-
随机性在哪里?
-
随机性在 minCut 函数内部。当我运行它时它返回不同的答案,但在循环内它总是返回相同的答案
-
想向我们展示 minCut 方法吗?
-
恐怕你需要展示“minCut”方法的实现——因为它代表“minimum”方法看起来不错,所以问题可能出在其他地方
-
minCut 函数很长很复杂,这里就不贴了价值