В этой главе сначала объясняется несколько способов генерирования случайных чисел Java, а затем демонстрирует их с помощью примеров.
Вообще говоря, в Java есть три способа генерировать случайные числа:
(01). Используйте System.currentTimeMillis (), чтобы получить количество миллисекундов текущего времени.
(02). Вернуть двойное значение от 0 до 1 через Math.random ().
(03). Создайте случайное число через случайный класс. Это профессиональный случайный класс инструментов с мощными функциями. Первый метод использует System.currentTimeMillis () для получения случайных чисел
Получите случайное число через System.currentTimeMillis (). На самом деле он получает текущее число миллисекундов, которое имеет тип длинного. Как использовать его следующим образом:
final long l = System.currentTimeMillis ();
Чтобы получить целое число типов Int, просто преобразуйте приведенный выше результат в тип Int. Например, получите целое число между [0, 100). Метод заключается в следующем:
final long l = System.currentTimeMillis (); окончательный int i = (int) (l % 100);
Второй метод использует math.random () для получения случайных чисел
Получите случайные числа через Math.random (). Фактически, он возвращает двойное значение между 0 (включительно) и 1 (не включено). Как использовать его следующим образом:
окончательный double d = math.random ();
Чтобы получить целое число типов Int, просто преобразуйте приведенный выше результат в тип Int. Например, получите целое число между [0, 100). Метод заключается в следующем:
окончательный double d = math.random (); final int i = (int) (d*100);
Третий тип использует случайный класс для получения случайных чисел
Получить случайные числа через случайный класс.
Как использовать его следующим образом:
(01) Создать случайный объект. Есть два способа создания случайного объекта следующим образом:
Random random = new random (); // конструктор по умолчанию случайный случайный = new random (1000); // указать номер семян
(02) Получить случайные числа через случайные объекты. Случайные поддержки случайных типов значений: логический, байт, int, long, float, двойной.
Например, получите целое число между [0, 100). Метод заключается в следующем:
int i2 = random.nextint (100);
Функциональный интерфейс случайного
// Конструктор (i): создать новый генератор случайных чисел. Random () // Конструктор (ii): создать новый генератор случайных чисел с использованием одного длинного семени: public random (long Seed) {setseed (Seed); } Следующий метод использует его для сохранения состояния генератора случайных чисел. Случайный (длинное семя) логическое количество Nextboolean () // Возвращает следующее псевдорадовое число «логического типа». void nextbytes (byte [] buf) // генерируйте случайные байты и поместите их в байт -массив Buf. Double NextDouble () // Возвращает случайное количество «двойного типа между [0,0, 1,0)». Float NextFloat () // Возвращает случайное количество «типа поплавки между [0,0, 1,0)». int nextint () // Возвращает следующее случайное число "int type". int nextint (int n) // Возвращает случайное количество «int -типа между [0, n)». long nextlong () // возвращает следующее случайное число «длинного типа». Синхронизированный Double NextGaussian () // Возвращает следующее случайное число «двойного типа», которое является двойным значением в гауссовом («нормальном») распределении со средним значением 0,0 и стандартным отклонениями 1,0. Синхронизированные пустоты (длинные семена) // Установите семена этого генератора случайных чисел с помощью одного длинного семени.Получить пример случайного числа
EG1:
Ниже приведен пример, чтобы продемонстрировать вышеупомянутые три способа получить случайные числа. Исходный код выглядит следующим образом (randomTest.java):
Импорт java.util.random; импортировать java.lang.math;/*** Java -программа тестирования числа. Есть 3 способа получить случайные числа: * (01), использовать System.currentTimeMillis (), чтобы получить количество миллисекунд длинного типа в настоящее время. * (02), верните двойное значение от 0 до 1 через математику.random (). * (03) Сгенерируйте случайное число через случайный класс. Это профессиональный случайный класс инструментов с мощными функциями. * * @author skywang * @email [email protected] */public class randomtest {public static void main (String args []) {// Возврат случайного числа TestSystemmilis () через CurrentTimeMillis (); // возвращать случайное число testmathrandom () через Math's random (); // Создать новый случайный объект с «семена 1000» и тестируйте случайный API через этот семянный тестрандомапис (новый случайный (1000), 1 -й случайный (1000) »); testrandomapis (новый случайный (1000), "2 -й случайный (1000)"); // Создание API «Seed Lestrandomapis» (New random (), «1 -й случайный ()»); testrandomapis (new random (), "2nd random ()"); } / ** * Возврат случайное число -01: currentTimeMillis () * / Private Static void testSyStemTimimillis () {// final long l = System.currentTimeMillis (); // Получить [0, целочисленное окончательное значение int i = (int) (L % 100); System.out.printf ("/n ---- System.currentTimeMillis () ---/nl =%si =%s/n", l, i); } / ** * Возвращает случайное число-02: тест математика random () * / private static void testmathrandom () {// возвращать случайное число двойного типа через функцию Math's random (), диапазон [0,0, 1,0) окончательный двойной d = math.random (); // Получить целое число между [0, 100) окончательным int i = (int) (d*100); System.out.printf ("/n ----- math.random () ---/nd =%si =%s/n", d, i); } / ** * Возвращает случайное число-03: тест api random's api * / private static void testrandomapis (случайный случайный, название строки) {final int buffer_len = 5; // Получить случайное логическое значение Boolean b = random.nextboolean (); // получить случайный массив BUF [] byte [] buf = new Byte [buffer_len]; random.nextbytes (buf); // Получить случайное двойное значение, диапазон [0,0, 1,0) двойной d = random.nextdouble (); // Получить случайное значение плавания, диапазон [0,0, 1,0) float f = random.nextfloat (); // Получить случайное значение int int i1 = random.nextint (); // Получить случайное значение int между [0,100) int i2 = random.nextint (100); // Получить случайное гауссовое распределение двойное g = random.nextgaussian (); // Получить случайное длинное значение long l = random.nextlong (); System.out.printf ("/n ----%s ----/nb =%s, d =%s, f =%s, i1 =%s, i2 =%s, g =%s, l =%s, buf = [", title, b, d, f, i1, i2, g, l); для (byte bt: buf) system.out.printf («%s», Bt); System.out.println ("]"); }}
EG2:
Задача: генерируйте случайные числа между (-10,10) с двумя цифрами, оставленными после десятичной точки.
Решение:
1. Функция генерации случайных чисел случайное r = new Random (); r.nextfloat (); // генерировать случайные числа с плавающей запятой между (0,1). Умножьте вышеуказанное случайное число на 10, чтобы получить случайное число между (0,10).
2. Сгенерировать случайное число логического типа, чтобы контролировать положительное и отрицательное число: r.nextboolean ();
3. Метод для сохранения двух десятичных знаков: Math.floor (n*100+0,5)/100; Полученное число - двойной тип.
Код выглядит следующим образом:
Импорт java.util.*; открытый класс createrandom {public float numrandom () {float num; Случайный r = new Random (); значение float = (float) (math.floor (r.nextfloat ()*1000+0,5)/100); Boolean b = r.nextboolean (); if (b) {num = value; } else {num = 0-value; } return num; } public static void main (string [] args) {createrandom cr = new Createrandom (); float num = cr.numrandom (); System.out.print (num); }}