По поводу генератора случайных чисел - PullRequest
0 голосов
/ 05 июня 2011

Допустим, я хочу случайное число, где я сделал "import java.util.Random;"и

int num = generator.nextInt(6) + 1; 
public void display1() {
    System.out.println("Number is: " + num);

}

// Отредактировано это код дисплея.

public void display() {
    System.out.println("Number is: " + num);

}

Когда я запускаю Java-программу, она даст случайное число курса.

Но вот проблема: когда я вызываю его из другого класса, скажем:

for (int i = 0; i < 5; i++) {
        pList[i].display();

}

Когда я запускаю этот код, он выдаст

Number is: 6 //if 6 is the random number.
Number is: 6
Number is: 6
Number is: 6
Number is: 6 //instead of output of 5 different numbers.

Так что мой вопрос, если естьв любом случае решить эту проблему?Должно выйти 5 разных номеров.Пример:

Number is: 6 
Number is: 3
Number is: 2
Number is: 5
Number is: 1

Ответы [ 2 ]

1 голос
/ 05 июня 2011

Редактировать: Я не очень понимаю, как устроены ваши классы, но:

После попытки угадать, мой лучший совет - инициализировать ваш генератор с начальным числом: generator = new Random(System.currentTimeMillis());, а затем присвоить num новое случайное значение.

Или используйте setSeed(long seed) где-то перед тем, как назначить значение для num с тем же параметром, что и раньше. То есть: generator.setSeed(System.currentTimeMillis());

Таким образом, вы должны получить случайные числа.

0 голосов
/ 05 июня 2011

Это прекрасно работает, если вы используете не метод display (), а метод nextInt ().Попробуйте это:

public static void main (String [] args) {
        Random generator = new Random ();
        for (int i = 0; i < 5; i++) {
            System.out.println(generator.nextInt(6) + 1); 
        }
    }

Удачи!

Редактировать (теперь с функцией):

import java.util.*;

public class test {
    public static void main (String [] args) {
        random (1000);
    }

    private static void random (int n) {
        Random generator = new Random ();
        for (int i = 0; i < n; i++) {
            System.out.println(generator.nextInt(6) + 1); 
        }
    }
}

Работает отлично, это было так сложно?(Вы также можете прочитать http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html. Все о случайных числах.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...