带有for循环和in-for循环的Java

带有for循环和in-for循环的Java,java,Java,我不知道为什么这不适用于这个问题。我必须使用一维整数数组来计算每个可能的总和在36000个卷中出现的次数 然而,我的问题是,我一直得到所有的0.0,而不是像1200000或700000 import java.util.Arrays; import java.util.Random; public class StockSim { public static void main(String args[]) { double data[] = new doubl

我不知道为什么这不适用于这个问题。我必须使用一维整数数组来计算每个可能的总和在36000个卷中出现的次数

然而,我的问题是,我一直得到所有的0.0,而不是像1200000或700000

import java.util.Arrays;
import java.util.Random;

public class StockSim {



    public static void main(String args[]) {

        double data[] = new double[10];



        System.out.println(percentGen());

        double percent;

            for (int i = 0; i < data.length; i++) {
                percent = percentGen();
                data[i] = data[i] + (data[i] * percent);
            }
        }

        for (int i = 0; i < data.length; i++) {
            System.out.println(data[i]);
        }

    }

    public static double percentGen() {
        Random rand = new Random();


        return randomNum;

    }
}
导入java.util.array;
导入java.util.Random;
公营股票{
公共静态void main(字符串参数[]){
双精度数据[]=新双精度数据[10];
System.out.println(percentGen());
百分之二;
对于(int i=0;i
这是一个简单的修复方法,你只是忘记了用随机百分比除以100得到实际百分比。将您的
return randomNum
替换为
return randomNum/100

除此之外,我测试了你的代码,它应该工作得很好


我希望这有帮助

您还需要将Random类的实例化移到循环之外,或者提供一个随机种子,否则结果不是随机的。例如,您可以实例化Random类并将其作为参数传递给percentGen

Random rand= new Random()
System.out.println(percentGen(rand));

那不是百分数。您将该值乘以一个从-30到30的随机数,而不是将其增加或减少30%。@KSFT data[i]=data[i]+(data[i]*percent);这不够吗?不,不够。将一个数字乘以30并不等于将其增加30%。要将某个数字增加30%,请将其乘以1.3任何解?像数据一样[i]*(1+个百分点)这会有帮助吗