Birthday problem_нужна помощь

 
 
 
Сообщения:6
Доброго времени суток, уважаемые посетители форума. Очень нужен совет! Данный код для группы лиц "int size" должен генерировать числа от 0 до 364. Далее, необходимо найти пару одинаковых дат и сразу зкончить симуляцию. Таких симуляций должно быть "int count". Нужно, также, сосчитать количество симуляций с одинаковыми датами "countNum" и в конце найти процент от count.
Код выдает не совсем корректный результат.

public double calculate(int size, int count) {

        for (int turn = 1; turn<=count; turn++) {
            simulation(size, turn);
            }
        }
        return (countNum/count)*100;
    }


    public void simulation(int size, int turn) {
        Random rnd = new Random();
        rnd.setSeed(turn);

        int[] birthdays = new int [size];

        for (int i = 0; i<size; i++) {
            birthdays[i] = rnd.nextInt(364);
        }
        for (int j = 0; j<size; j++) {
            for (int k = j + 1; k<size; k++) {
                if (birthdays[j] == birthdays[k]) {
                    countNum = countNum + 1.0;
                return;
            }
        }
    }
}
double countNum = 0.0;


У меня подозрение, что я неправильно использую "return" и не корректно считаю "countNum"
Заранее благодарен.
 
 
Сообщения:1046
да, countNum у тебя нигде не обнуляется. и да, его желательно просто возвращать.
 
Модераторы:frymock
Сейчас эту тему просматривают:Нет