Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
IzotopTh232
1 / 1 / 0
Регистрация: 02.12.2015
Сообщений: 54
#1

Как заполнить массив и N-элементов случайными числами

17.04.2016, 09:42. Просмотров 1236. Ответов 10
Метки нет (Все метки)

Доброго дня! Меня интересует такой вопрос : "Как заполнить массив и N-элементов случайными числами ?".
Искал в интернете , но найти не смог , а то , что нашел , не понял до конца .
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2016, 09:42
Ответы с готовыми решениями:

Как заполнить двумерный массив случайными числами?
Привет всем.Я не совсем понимаю как при помощи функции Math.random заполнить...

Заполнить массив случайными числами
Задача стоит такая есть 3 массива разных типов !!! Один типа int Второй...

Заполнить массив случайными числами
Мне нужно открыть метод mass в другом классе,как это сделать?

Заполнить массив случайными числами
Заполнить массив arr длины 20 случайными целыми числами из промежутка . int A...

Заполнить массив случайными, не повторяющимися числами
Всем Здравствуйте. Вот столкнулся с такой проблемой: Нужно заполнить массив...

10
KEKCoGEN
Эксперт Java
2050 / 1924 / 497
Регистрация: 28.12.2010
Сообщений: 7,697
17.04.2016, 10:10 #2
IzotopTh232, что именно вам не понятно? Вы знаете как заполнить массив не случайными числами? Например приведите тут код, который заполнит массив числом 5
0
Igor100
26 / 26 / 24
Регистрация: 23.04.2011
Сообщений: 64
17.04.2016, 10:31 #3
Лучший ответ Сообщение было отмечено IzotopTh232 как решение

Решение

1. Почитайте о классе Random

Random example
Java
1
2
3
4
5
6
7
8
9
import java.util.Random; // импортируем класс
 
class Main {
    public static void main(String[] args) {
        Random rand = new Random(); // создаем объект класса Random
        System.out.println("Int random value: " + rand.nextInt()); // целочисленное случайное значение
        System.out.println("Float random value: " + rand.nextFloat()); // вещественное случайное значение
    }
}


2. Заполнение массива

Random fill array
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Random;
class ArrayFill {
    private int[] iArray;
    private Random rand = new Random();
 
    ArrayFill(int n) {
        iArray = new int[n];
    }
    int[] randArrayFill() {
        for (int i = 0; i < iArray.length; i++) {
            iArray[i] = rand.nextInt()%100;
        }
        return iArray;
    }
}
 
public class Main {
    public static void main(String[] args) {
        ArrayFill filler = new ArrayFill(10);
        for(int i: filler.randArrayFill()) {
            System.out.println(i);
        }
    }
}
1
kozak95
34 / 34 / 21
Регистрация: 01.11.2013
Сообщений: 319
17.04.2016, 18:47 #4
Igor100, ты гурман прям)))
Java
1
2
        for(int i=0;i<array.length;i++)
            array[i]=new Random().nextInt(99);
Но для больших массивов лучше создать обьект рандом, а потом использовать его в цикле
1
KEKCoGEN
Эксперт Java
2050 / 1924 / 497
Регистрация: 28.12.2010
Сообщений: 7,697
17.04.2016, 19:27 #5
Цитата Сообщение от kozak95 Посмотреть сообщение
Но для больших массивов лучше создать обьект рандом, а потом использовать его в цикле
это лучше делать для любых массивов размерностью больше чем 1
0
Igor100
26 / 26 / 24
Регистрация: 23.04.2011
Сообщений: 64
18.04.2016, 12:34 #6
kozak95, KEKCoGEN,
Если вас не затруднит, скажите пожалуйста, почему так лучше ?

P.S. я только в процессе изучения Java.
0
KEKCoGEN
Эксперт Java
2050 / 1924 / 497
Регистрация: 28.12.2010
Сообщений: 7,697
18.04.2016, 13:12 #7
Igor100, каждую итерацию вы создаете объект который создавать не обязательно. Объект Random достаточно создать один раз в данном примере.
0
Igor100
26 / 26 / 24
Регистрация: 23.04.2011
Сообщений: 64
18.04.2016, 14:42 #8
KEKCoGEN, но разве, мой код в классе не соответствует вашим словам ?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class ArrayFill {
    private int[] iArray;
    private Random rand = new Random(); // Создаем один объект класса Random
 
    ArrayFill(int n) {
        iArray = new int[n];
    }
    int[] randArrayFill() {
        for (int i = 0; i < iArray.length; i++) {
            iArray[i] = rand.nextInt(100); // Используя ссылку на объект вызываем метод nextInt() класса Random
        }
        return iArray;
    }
}
Возможно, я пока не понимаю всех тонкостей языка, так как, мой уровень владения Java, пока равен 1/3 прочитанной книги Г. Шилдта
0
KEKCoGEN
Эксперт Java
2050 / 1924 / 497
Регистрация: 28.12.2010
Сообщений: 7,697
18.04.2016, 16:58 #9
Цитата Сообщение от Igor100 Посмотреть сообщение
но разве, мой код в классе не соответствует вашим словам ?
я не про ваш код говорил
0
Igor100
26 / 26 / 24
Регистрация: 23.04.2011
Сообщений: 64
18.04.2016, 17:18 #10
KEKCoGEN, прошу прощения, видимо я неправильно понял сообщение kozak95'a, приняв его код, как рекомендацию к своему.
0
Sandor19
0 / 0 / 2
Регистрация: 11.05.2015
Сообщений: 35
19.04.2016, 20:51 #11
Как-то вот так заполняли матрицу рандомными числами в определенном диапазоне. Может, пригодится.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Введите размерность матрицы: ");
String  n= br.readLine();
            int m=Integer.valueOf(n).intValue(); //преобразование строки к целому числу
            System.out.println("Введите границы рандома: "); //чтение строки, содержащее целое число
            String  Q= br.readLine(); //чтение строки, содержащее целое число
            int q=Integer.valueOf(Q).intValue(); //преобразование строки к целому числу
            String  W= br.readLine(); //чтение строки, содержащее целое число
            int w=Integer.valueOf(W).intValue(); //преобразование строки к целому числу
 
             System.out.println("Полученная матрица: ");
             int[][] A = new int[m][m]; //заполняем матрицу
            for (int i=0; i<m; i++)
            {
                for (int j=0; j<m; j++)
                {
                    A[i][j] = q+ (int) (Math.random()*((w-q)+1));
                }
            }
 
            for (int i=0; i<m; i++)
            {
                for (int j=0; j<m; j++)
                {
                    System.out.print( A[i][j]+" ");
                }
                System.out.print("\n");
            }
0
19.04.2016, 20:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2016, 20:51

Заполнить двумерный массив случайными числами
Заполнить двумерный массив случайными числами в диапазоне от 1 до N Виконати...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru