2016-04-18 2 views
-1

Я пытаюсь завершить проект, где мы должны взять набор данных случайных чисел между 0 и 364 и посмотреть, какой процент прогонов (метод берет количество элементов в данных set и количество прогонов) имеют в них дублирующее число.Начинающий ищет руководство по методам

Ниже то, что я до сих пор, но я действительно изо всех сил, чтобы выяснить, как это сделать, как я продолжаю получать ошибки:

public double calculate(int size, int count) { 

    double percentage; 
    int matches = 0; 
    int check; 
    int i = 0; 
    int add = 0; 
    Random rnd = new Random(); 

    List<Integer> birthdays = new ArrayList<>(); 

    for (int k = 1; k <= count; k++){ 
     rnd.setSeed(k); 
     do{ 
      add = rnd.nextInt(365); 
      birthdays.add(add); 
      i++; 
     }while (i < size-1); 
     //birthdays.add(rnd.nextInt()); 
     for (int j = 0; j <= size-1; j++) { 
      check = birthdays.get(j); 
      if (birthdays.indexOf(check) != birthdays.lastIndexOf(check)) { 
       matches++; 
       j = size; 
      } 
     } 
     } 

    percentage = (double)matches/count * 100; 

    //percentage = 8; 

    return percentage; 
} 
+1

Какие ошибки вы получаете? –

+0

OutofBoundsException –

+0

Я не уверен, что я делаю неправильно в отношении даже ответа на вопрос. Любая помощь будет оценена –

ответ

0

Есть несколько проблем с кодом здесь. Один из них представляет собой цикл while непосредственно после первого цикла, который, похоже, ничего не делает. Он говорит следующее:

while(i < size-1); 

Это может быть ваша ошибка, но ошибка вы говорите, возможно, из вашего второго цикла. Когда вы создаете его экземпляр вы говорите:

for (int j = 0; j <= size-1; j++) 

, но тогда вы говорите:

j = size; 

так, когда вы его экземпляр вы говорите J < = размер-1, но затем установить J = размер это даст ошибка.

Смежные вопросы