сгенерировать 4 разных чисал
сгенерировать 4 разных чисал
Всем привет, нужно с генерировать 4 разных числа, кто-то может помочь, потому что мой код не работает.
Re: сгенерировать 4 разных чисал
Нужен рандом ?
Код сгенерирует число от 0 до 99.
Код: Выделить всё
Random rand = new Random();
int randomNumer = rand.nextInt(100);
Re: сгенерировать 4 разных чисал
они дожны быть еще разные все, без повторенийElek писал(а):Нужен рандом ?
Код сгенерирует число от 0 до 99.Код: Выделить всё
Random rand = new Random(); int randomNumer = rand.nextInt(100);
Re: сгенерировать 4 разных чисал
тю, ну поставь дальше проверку, если чесло совпало, то random еще раз!
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: сгенерировать 4 разных чисал
Так, набросал то, что пришло в голову, если совсем неоптимально, поправьте меня пожалуйста :
Создаем ArrayList интов, можно использовать и другой тип. Делаем итерацию 4 раза, проверяем нет ли такого числа в ArrayList, если нет - добавляем, если такое числое уже есть - уменьшаем "i" на 1;
Код: Выделить всё
Random rand = new Random();
List<Integer> integers = new ArrayList<>(4);
for (int i = 0; i < 4; i++) {
int randNumber = rand.nextInt(5);
if(!integers.contains(randNumber)){
integers.add(randNumber);
} else {
System.out.println("There is such number in list: " + randNumber);
i--;
}
}
Re: сгенерировать 4 разных чисал
эх, молодёж Инна, не стыдно такое предлагать? Как ты думаешь сколько раз будет проверяться в таком случае? В итоге есть шанс попасть в бесконечный цикл...
Короче всё делается одной строкой: http://docs.oracle.com/javase/6/docs/ap ... il.List%29
Короче всё делается одной строкой: http://docs.oracle.com/javase/6/docs/ap ... il.List%29
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: сгенерировать 4 разных чисал
я так и сделал, но в итоге, все равно числа повторяютсяFoenix писал(а):тю, ну поставь дальше проверку, если чесло совпало, то random еще раз!
Re: сгенерировать 4 разных чисал
ничего не понял, перейдя по ссылкеrezak90 писал(а):эх, молодёж Инна, не стыдно такое предлагать? Как ты думаешь сколько раз будет проверяться в таком случае? В итоге есть шанс попасть в бесконечный цикл...
Короче всё делается одной строкой: http://docs.oracle.com/javase/6/docs/ap ... il.List%29
Re: сгенерировать 4 разных чисал
Судя по ссылке, можно сделать так:
Как-то так.
Код: Выделить всё
// 1. Создать массив и заполнить его числами:
List<Integer> integers = new ArrayList<Integer>();
for (int i = 0; i < 20; i++) {
integers.add(i);
}
// 2. Перемешать его:
Collections.shuffle(integers);
// 3. Создать массив нужного размера для "рандомальных" чисел и заполнить его из предидущего:
int[] randomNumbers = new int[4];
for (int i = 0; i < randomNumbers.length; i++) {
randomNumbers[i] = integers.get(i);
}
Re: сгенерировать 4 разных чисал
я вижу с коллекциями вообще никто не дружит
Elek
копировать каждый элемент с коллекции в массив очень жестока))) ведь есть уже готовые методы
Elek
копировать каждый элемент с коллекции в массив очень жестока))) ведь есть уже готовые методы
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: сгенерировать 4 разных чисал
rezak90,
Вот так надо :
Integer[] randomIntegers = integers.toArray(new Integer[0]); ?
или по другому ? Обьясни пожалуйста
Вот так надо :
Integer[] randomIntegers = integers.toArray(new Integer[0]); ?
или по другому ? Обьясни пожалуйста
Re: сгенерировать 4 разных чисал
у листа есть метод subListElek писал(а):rezak90,
Вот так надо :
Integer[] randomIntegers = integers.toArray(new Integer[0]); ?
или по другому ? Обьясни пожалуйста
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена