Фон : Привет! Мне пришлось случайным образом выбрать значение из нормального распределения (готово) и использовать это значение (среднее значение - это «это значение»), чтобы увидеть, насколько первоначальное значение капитала в 100 увеличивается за 3582 недели, и предоставить окончательное значение прибыли. Как в:
капитал = 100
эквити = эквити + 100 * среднее
Мне нужно выполнить 1000 испытаний, чтобы увидеть, как разные значения «среднего» дают разные выгодные значения.
Я могу получить ответ за 3582 недели для первого испытания, но когда я добавляю еще один цикл для "1000 испытаний", он либо дает мне те же значения, либо неправильные значения.
Проблема : Цикл либо дает мне те же значения, либо совершенно неверные значения. Метод: computeStats () {..}
Примечание : я показал конструктор в блоге просто для справки, чтобы показать, что я на самом деле делаю.
class Sample extends SimulateMarket{ //SimulateMarket is the Application class
ArrayList<Double> data = new ArrayList<Double>();
private double mean, stdDev;
private Random random;
SimulateMarket mySim = new SimulateMarket(); //mySim is an instance of SimulateMarket class used to access variables of Simulate Class
public Sample(int size, double theMean, double theStdDev){ //Comstructor used for the Distributional Technique
random = new Random();
for(int i=0; i<3582 ; i++)
data.add(theMean+random.nextGaussian()*theStdDev); //Random sampling from Normal Distribution
mean = getMean(); //getMean() method is used to get Mean
stdDev = getStdDev(mean);
Collections.sort(data);//getStdDev is used for getting Standard Deviation
System.out.println(this); //for printing the results
}
public void computeStats(){
ArrayList<Double> myData = new ArrayList<Double>();
for(int j=0; j<1000; j++){
equity = 100;
for(int i=0; i<3582; i++){
equity = equity + 100*mean;
}
myData.add(equity);
}
for(Double num: myData){
System.out.println(num);
}
}