如何召回方法n次?

时间:2014-02-20 19:31:07

标签: java methods

尝试在此处调用一个方法(以便使用for循环生成100次不同的结果)

以下是我在主要方法中的内容:

for (int i = 0; i<99; i++) { 
            double scaleFitness = ScalesSolution.ScalesFitness(randomNumberFile);
            System.out.print(scaleFitness + ", ");
        }

这是我试图调用100次的方法(在ScalesSolution类中):

public static double ScalesFitness(ArrayList<Double> weights)
    {
        int n = scasol.length();
        double lhs = 0.0, rhs = 0.0;
        if (n > weights.size()) return(-1);

        for(int i = 0; i < n; i++){
            if(scasol.charAt(i) == '0'){
                lhs += weights.get(i);
            }
            else if (scasol.charAt(i) == '1') {
                rhs += weights.get(i);
            }
        }
        return(Math.abs(lhs-rhs));  
    }
然而,

这会打印100次相同的值。

2 个答案:

答案 0 :(得分:3)

您的方法“ScaleFitness”和此方法的输出取决于两个变量:

  1. 权重

  2. scasol

  3. 似乎这些变量在整个程序运行中保持不变。所以你的输出是相同的并不奇怪。

    如果您想为循环的每次运行提供不同的输出。您需要将这些变量中的至少一个重置为新值。

    顺便说一下。 Java中的方法总是以小写字母开头。类以大写字母开头。

答案 1 :(得分:0)

public static double scalesFitness(ArrayList<Double> weights)
{
    double randomElement = weights[((int) (Math.random() * weights.size()))];

这将使您能够检索数组中的随机元素,以便稍后进行操作。