2012-04-06 3 views
0

Итак, я должен создать генератор случайных чисел для получения чисел от 0 до 400. Я помещаю их в массив, а затем сортирую их позже. Я просто не знаю, как это сделать. Мне дали что-то вроде этого;Метод генератора случайных чисел для связанного назначения списка

public int nextInt(400) //gives me errors 
{ 
    random.setSeed(12345L); 
    for (int i = 0; i < arr.size; i++) 
    { 
     val = random.nextInt(400); 
     a[i] = val; 
    } 
} 

Я уже назвал случайный класс, так как указано направление. Я просто не знаю, почему это не работает. Это дает мне ошибки, особенно с первой частью; класс, интерфейс или enum. Может ли кто-нибудь направить меня в правильном направлении, пожалуйста?

+1

Вы пробовали очень простой учебник, как образец «привет мир»? Кажется, у вас нет оснований писать самые тривиальные программы. –

+0

У меня есть, да. Я просто опубликовал часть, которую мне дали работать. Мне никогда не приходилось работать со случайным генератором, поэтому вся концепция для меня нова. Я искал его и изучал, но он не хорошо меняет то, что мне дано. –

+1

Проблемы, возникающие с кодом, не имеют никакого отношения к работе с Random. Отложите эту сложность на данный момент. Вы еще не определили класс, и у вашего объявления метода есть ошибки. Обе эти проблемы существуют вне введения Random. Поэтому сначала исправьте их, так как вы знаете, как это сделать. –

ответ

0

Вы должны определить эту функцию в определении класса

+0

Я сделал. У меня уже есть это. Основная проблема, с которой я столкнулся, - это часть «nextInt (400)». Я не знаю, почему. Вот как это было написано в моем задании. –

+1

@Rachel: Если у вас уже есть это, вы должны обновить свой вопрос в качестве кода, который вы даете, и сообщение об ошибке, которое вы сообщаете в своем вопросе, предполагает, что вы не объявили функцию внутри класса. Вы должны предоставить нам [SSCCE] (http://sscce.org) (самодостаточный фрагмент кода, который точно воспроизводит проблему, которую вы хотите помочь). –

2

функции в Java (все языки программирования) имеют «переменные» в их определении.

Вы получили:

public int nextInt(400) 

Здесь, вы хотите, чтобы ваш 400, чтобы иметь значение, которое передается в функцию.

Подумайте об этом как математике. Я уверен, что вы столкнулись с чем-то вроде f(x) = 2 * x. Здесь x - это переменная, и вы «оцениваете» f (x) со значением для x. Точно так же, в программировании, мы должны были бы что-то вроде:

public int nextInt(int x) 

Как вы видите, наша функция определяет й как тип внутр. Это необходимо на языке Java, потому что вы сообщаете компилятору, что эта функция будет принимать только целые числа для x.

Теперь, когда вы это сделали, вы можете использовать x в качестве переменной в теле вашей функции.

Обратите внимание, что всякий раз, когда вы используете переменную, она должна быть определена. Линия, такая как:

int variable; 

определяет переменную как int.

Ваша программа не указана для random, val, arr и a. Обратите внимание, что arr и a являются массивами (и как-то я чувствую, что они не должны быть двумя отдельными переменными).

Прежде чем пытаться решить этот вопрос, вы должны по-настоящему освежить определения переменных, массивы и функции. Ваш лучший ресурс будет вашим учебником, потому что он будет объяснять все организованным, шаг за шагом. Вы также можете попробовать множество обучающих программ, доступных в Интернете. Если у вас есть конкретные вопросы, вы всегда можете вернуться в StackOverflow, и я уверен, что вы найдете здесь помощь.

Удачи вам!

+0

Спасибо! Это очень помогло. Я очень ценю это! –

0

даже вы указали:

public int nextInt(400) 

в этой функции строки возвращает INT и всего тела у меня не было никакого возвращения заявления.

и да, так как предложенный Kshitij Mehata не использует 400 непосредственно в качестве переменной использования ценности.

это должно быть ваша функция:

public int[] nextInt(int x) //gives me errors 
    { 
     random.setSeed(12345L); 
     int[] a=new int[arr.size]; 
     for (int i = 0; i < arr.size; i++) 
     { 
      val = random.nextInt(400); 
      a[i] = val; 
     } 
     return a; 
    } 

даже есть некоторая проблема с обр откуда это обр пришел?

+0

Поскольку ОП пытается научиться программированию, и это домашняя работа, лучше не давать им код. Скорее, объясните шаги и позвольте им добраться до самого решения. –

+0

Я согласен. Я буду помнить об этом. –

Смежные вопросы