Java 在for循环中运行函数

Java 在for循环中运行函数,java,function,random,Java,Function,Random,我想多次运行我的函数,得到不同的答案,因为它处理随机数,并从所有可能的答案中得到最小值。但是函数总是返回相同的值。我如何纠正循环,每次得到不同的答案,并找到它们的最小值? 这是我的密码 int n = 0; KargerMinimumCut karger = new KargerMinimumCut(); ArrayList<Integer> answers = new ArrayList<Integer>(); for(int i = 0

我想多次运行我的函数,得到不同的答案,因为它处理随机数,并从所有可能的答案中得到最小值。但是函数总是返回相同的值。我如何纠正循环,每次得到不同的答案,并找到它们的最小值? 这是我的密码

    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;
}
编辑:

好的,在看到你的算法后,你需要这样做。顺便说一下,我会使用一个简单的二维整数数组

int min = Integer.MAX_VALUE;
KargerMinimumCut karger = new KargerMinimumCut();
for(int i = 0; i < 10; i++) {
    int cut = karger.minCut(copyOfVertices(vertices));
    System.err.println(cut);
    min = Math.min(min,cut);
}
System.out.println("Minimum Number is: " + min);


随机性在哪里?随机性在minCut函数中。当我运行它时,它会返回不同的答案,但在循环中它会返回所有相同的答案Care向我们展示minCut方法?我恐怕你需要展示minCut方法的实现-因为minCut方法看起来不错,所以可能问题出在其他地方minCut函数非常长且复杂,所以我不会在这里发布它,但问题是当我在循环外运行它时,它返回不同的值,但在循环内它总是返回相同的值谢谢!但我如何才能看到每次迭代时返回的值是什么?我编辑了我的答案,您实际上不需要打印出顶点,但如果需要,您可以打印出来。非常感谢!我尝试了这个,它打印了10次相同的剪切值:有趣的是,当我在循环外运行它时,每次运行我都会得到不同的答案向我们展示你的minCut方法,我们已经在OP中告诉过你。再次编辑,试试这个。
public ArrayList<ArrayList<Integer>> copyOfVertices(ArrayList<ArrayList<Integer>> vertices) {
  ArrayList<ArrayList<Integer>> copy = new ArrayList<ArrayList<Integer>>();
  int size = vertices.size();
  for (int i=0; i<size; i++) {
    int innerSize = vertices.get(i).size();
    ArrayList<Integer> row = new ArrayList<Integer>();
    for (int j=0; j<innerSize; j++) {
      row.add(new Integer(vertices.get(i).get(j)));
    }
    copy.add(row);
  }
  return copy;
}