Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Генератор случайных чисел генерит одно и тоже


Автор: barin_Student 25.5.2009, 12:55
Собственно вот код:
Код

Random generator = new Random(new Date().getTime());
 //получим случайное целое число в диапазоне от 0 до 5
 int rand=generator.nextInt(5);

Даже в цикле 10 раз получаю число случайно сгенеренное , оно всегда ==0 меня дипазон, постояяно выдает одно и тоже число, но уже любое другое, но все равно одно и тоже. В чем ошибка ?

Автор: math64 25.5.2009, 13:17
А Random generator = new Random(new Date().getTime()); у тебя случайно не в цикле? Генератор нужно создавать только один раз при старте программы.

Автор: barin_Student 25.5.2009, 13:20
Цитата(math64 @ 25.5.2009,  16:17)
А Random generator = new Random(new Date().getTime()); у тебя случайно не в цикле? Генератор нужно создавать только один раз при старте программы.

Да внутри, вот весь код:

Код

public static String getRandomNote(){
        String note="";
         Random generator = new Random(new Date().getTime());
            
            //получим случайное целое число в диапазоне от 0 до 6
           int rand=generator.nextInt(5);

        System.out.println("Random:["+rand+"]");
        switch(rand){
            case 0:summ=summ+200;
                System.out.println("Note:[200]");
                break;
            case 1:summ=summ+500;
                System.out.println("Note:[500]");
                break;
            case 2:summ=summ+1000;
                System.out.println("Note:[1000]");
                break;
            case 3:summ=summ+2000;
                System.out.println("Note:[2000]");
                break;
            case 4:summ=summ+5000;
                System.out.println("Note:[5000]");
                break;
            case 5:summ=summ+10000;
                System.out.println("Note:[10000]");
                 break;    
        }
        System.out.println("Summ:["+summ+"]");
        note=""+summ;
        return note;
    }

Ну и вызываю getRandomNote() :
Код

public static void main(String args[]){
        for(int i=1;i<11;i++){
            response.getRandomNote();
        }
}


Добавлено через 1 минуту и 30 секунд
А все понял , как счас попробую smile

Добавлено через 2 минуты и 52 секунды
Тема закрыта спс math64 smile 

Автор: AxNe0 25.5.2009, 22:52
интересно, а почему не хватает обычного Math.random() ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)