2013-09-09 5 views
1

Так что мне нужно выводить случайные числа между -50 и +50 с использованием стандартных Java-коллекций Затем они должны быть введены в ArrayList и отсортированы в порядке возрастания и второго раза по убыванию.Как сделать вывод Java Rand() между номерами

Входных и сортировка Я знаю, как это сделать, но как я могу генерировать случайные числа в диапазоне от -50 до 50, учитывая, они должны быть введена а, для делать петлю, один за другой в ArrayList

NB этот вопрос был для экзамена, поэтому, несмотря на то, что цикл for-do (как итеративный) вызывает накладные расходы, мне все еще нужно следовать этим рекомендациям.

Большое спасибо

+0

Каких «номера» вы желающие? Целые? Парный? (И для такого рода задач цикл 'for' очень хорош, это коллекции, которые будут налагать накладные расходы.) – chrylis

+0

Вы посмотрели документацию java.util.Random? –

+0

Майк Самуэль ответил спасибо всем :). Они должны быть целыми, поэтому использование nextInt (int n) должно покрыть его! – DodoSerebro

ответ

2

Если вы хотите целые числа, то Random.nextInt будет делать это.

myRandom.nextInt(101) - 50 

общественность INT nextInt (Int N)

Возвращает псевдохаотическом равномерно распределенная ИНТ значения между 0 (включительно) и заданным значением (исключительным), составленным из последовательности этого случайного числа генератора. Общий контракт nextInt заключается в том, что одно значение int в указанном диапазоне псевдослучайно генерируется и возвращается. Все n возможных значений int производятся с (приблизительно) равной вероятностью.

+0

Могу ли я спросить, для чего нужен -50? спасибо – DodoSerebro

+0

@DodoSerebro, я отредактировал свой ответ, чтобы процитировать javadoc. 'randInt (101)' возвращает целое число в диапазоне [0, 100] и сдвиги '... - 50', которые варьируются до [-50, 50]. –

3

Вы можете сгенерировать случайное число в начале диапазона с 0, как это:

Random randomGenerator = new Random(); 
int randomInt=randomGenerator.nextInt(101); //This function generate number in range 0 to 100. 
randomInt -= 50; //It will give you number between -50 to 50 
0

другой путь, а

произвести случайный двойной:

Math.random() 

производить случайный двойной менее 100, например

Math.random()*100 

можно привести результат к любому числовому типу евай хочет

вы можете произвести свой результат, как этого

double r = Math.random()*50 
if(r % (int)(Math.random()*10 == 2){ 
    r = r*-1; 
} 

что-то подобное

+0

извините за ошибку в скобках в коде –