Java. Урок 35. Генерация случайных чисел

Уроки для начинающих   27 февраля 2013  Автор статьи:  

Очень часто бывает нужно создать некоторые случайные данные, которые могут быть нам полезны как в работе алгоритмов, так и при их тестировании. Для этих целей в языке Java существует генератор случайных чисел Random. Данный класс имеет два конструктора: по умолчанию, который использует текущую дату для своей инициализации и конструктор, который принимает на вход некоторое число типа long. Очевидно, если вы будете использовать второй конструктор с одинаковым значением параметра, то в результате у вас будут генерироваться одинаковые случайные значения, поэтому на практике в основном применяют первый. Рассмотрим методы классы Random:

  • nextBoolean()
  • nextInt()
  • nextLong()
  • nextFloat()
  • nextDouble()

Стоит отметить, что вещественные числа генерируются только в промежутке с 0 до 1, а целочисленные по всему спектру значений. Кроме того, целые числа можно генерировать в диапазоне с 0 до max — 1: nextInt(max).
Заполним массив байт случайными значениями:

Random r = new Random();
byte[] arr = new byte[100];
r.nextBytes(arr);
for(int i = 0; i < arr.length; i++){ System.out.println(arr[i]); }

К сожалению, аналогов функции nextBytes нет для других типов, поэтому придется явно инициализировать каждое значение:

Random r = new Random();
int[] arr = new int[100];
for(int i = 0; i < arr.length; i++){ arr[i] = r.nextInt(); System.out.println(arr[i]); }

Генерация случайных данных очень помогает для тестирования программ. Например, для того, чтобы проверить сортировку достаточно подать на вход случайную последовательность, а затем проверить, что предыдущее число меньше текущего.

Научиться программировать

  • на Delphi

  • на Java

  • на C++