2015-03-20 3 views
-2

Я не уверен, почему это не работает на вопрос, чтобы использовать одномерный целочисленный массив для подсчета количества раз, когда каждая возможная сумма появляется в 36000 рулонов.Java с циклом for with in for loop

Однако моя проблема заключается в том, что я получаю все 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; 

    } 
} 
+0

Это не процент. Вы умножаете значение на случайное число от -30 до 30, не увеличивая или уменьшая его на 30%. – KSFT

+0

данные @KSFT [i] = данные [i] + (данные [i] * percent); не хватит ли этого? –

+1

Нет, это не так. Умножение числа на 30 не совпадает с увеличением на 30%. – KSFT

ответ

1

Это легко исправить, вы просто забыли, чтобы получить реальный процент путем деления случайной процент на единицу сто. Замените return randomNum на return randomNum/100.

Кроме того, я проверил ваш код, и он должен работать нормально.

Я надеюсь, что это поможет!

0

Вам также необходимо перенести экземпляр класса Random вне цикла или предоставить случайное семя, иначе результаты не будут случайными. Например, вы можете создать экземпляр класса Random и передать его в качестве аргумента для процентаGen

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