Клас Random. Методи отримання наборів випадкових чисел
Зміст
- 1. Метод doubles(). Створити потік даних, що містить випадкові числа типу double
- 2. Метод ints(). Отримати дані типу int у вигляді потоку випадкових чисел
- 3. Метод longs(). Отримати дані типу long у вигляді потоку випадкових чисел
- 4. Метод nextBytes(). Отримати масив випадкових чисел типу byte[]
- Споріднені теми
Пошук на інших ресурсах:
1. Метод doubles(). Створити потік даних, що містить випадкові числа типу double
Метод doubles() створює потік даних, який складається з випадкових чисел типу double. Числа мають значення в межах від 0 до 1. Метод має декілька реалізацій. Найбільш поширені реалізації методу виглядають наступним чином
DoubleStream doubles();
DoubleStream doubles(long streamSize);
тут
- streamSize – кількість чисел, які потрібно згенерувати в потоці даних.
Перша реалізація (без параметрів) дозволяє генерувати необмежений потік даних. Друга реалізація методу doubles() генерує потік даних фіксованого розміру.
Щоб використовувати клас DoubleStream потрібно підключити модуль
import java.util.stream.DoubleStream;
Приклад.
import java.util.Iterator; // потрібне для використання класу Iterator<> import java.util.Random; // потрібне для використання класу Random import java.util.stream.DoubleStream; // потрібне для використання класу DoubleStream public class MathFunctions { public static void main(String[] args) { // 1. Створити потік на основі довільного початкового значення Random r1 = new Random(); // // 2. Отримати потік з 10 чисел типу double DoubleStream ds1 = r1.doubles(10); // 3. Отримати ітератор на потік ds1 Iterator<Double> it1 = ds1.iterator(); // 4. Вивести в циклі 10 випадкових чисел з потоку ds1 System.out.println("Stream ds1:"); while (it1.hasNext()) { System.out.println(it1.next()); } } }
Результат
Stream ds1: 0.03296957043047 0.5816373543355657 0.6067884839512304 0.3600735235508934 0.5041601996294538 0.8372554459494158 0.7894095095554403 0.23663204256820447 0.5334022228843057 0.5142652199413285
⇑
2. Метод ints(). Отримати дані типу int у вигляді потоку випадкових чисел
Метод ints() створює потік випадкових чисел типу IntStream. Найбільш поширені реалізації методу мають вигляд
IntStream ints();
IntStream ints(long streamSize);
тут
- streamSize – кількість елементів у потоці даних типу int.
Перша реалізація методу (без параметрів) створює потік випадкових чисел типу int необмеженого розміру. Друга реалізація дозволяє встановити обмеження в потоці розміром streamSize.
Щоб використовувати тип IntStream та йому подібні на початку модуля потрібно включити рядок
import java.util.stream.*;
Приклад.
У прикладі методом ints() без параметрів створюється потік необмеженого розміру. Потім виводяться перші 5 елементів потоку.
import java.util.Iterator; // потрібне для використання класу Iterator<> import java.util.Random; // потрібне для використання класу Random import java.util.stream.*; // потрібне для використання класу IntStream public class MathFunctions { public static void main(String[] args) { // 1. Створити потік на основі довільного початкового значення Random r1 = new Random(); // 2. Отримати потік з необмеженою кількістю чисел типу int IntStream rndInt = r1.ints(); // 3. Отримати ітератор на потік rndInt Iterator<Integer> it1 = rndInt.iterator(); // 4. Вивести в циклі 5 випадкових чисел з потоку rndInt int value; System.out.println("Stream rndInt:"); for (int i=0; i<5; i++) { // Отримати випадкове число value = it1.next(); // Вивести число на екран System.out.println(value); } } }
Результат
Stream rndInt: 2119189406 -15495572 -2068391741 271674312 742325160
⇑
3. Метод longs(). Отримати дані типу long у вигляді потоку випадкових чисел
Метод longs() подібний до методів doubles() та ints(). Метод формує потік випадкових чисел типу LongStream. Оголошення найбільш поширених реалізацій методу має вигляд
LongStream longs();
LongStream longs(long streamSize);
де
- streamSize – кількість чисел типу long, які потрібно сформувати.
Перша реалізація методу формує потік чисел необмеженого розміру. Друга реалізація формує потік з 10 чисел.
Приклад.
У прикладі спочатку формується потік з 10 випадкових чисел типу long. Потім цей потік виводиться на екран.
import java.util.Iterator; // потрібне для використання класу Iterator<> import java.util.Random; // потрібне для використання класу Random import java.util.stream.*; // потрібне для використання класу LongStream public class MathFunctions { public static void main(String[] args) { // 1. Створити потік на основі довільного початкового значення Random rnd = new Random(); // 2. Отримати потік що містить 10 чисел типу long - метод longs() LongStream stream = rnd.longs(10); // 3. Отримати ітератор на потік stream Iterator<Long> it = stream.iterator(); // 4. Вивести в циклі 10 випадкових чисел з потоку stream System.out.println("Stream of Long numbers:"); for (int i=0; i<10; i++) { // Отримати випадкове число типу long long value = it.next(); // Вивести число на екран System.out.println(value); } } }
Результат
Stream of Long numbers: -846271452660413200 -3239665480282540853 -4825523866103987302 -6364844712541754488 752243074034471911 6039172197582870129 9130557788351257634 5320620246218395762 -5038665701090253375 -924371785716259808
⇑
4. Метод nextBytes(). Отримати масив випадкових чисел типу byte[]
Метод nextBytes() заповнює вхідний масив випадковими числами, які мають тип byte. Згідно з документацією синтаксис оголошення методу наступний
void nextBytes(byte[] bytes);
тут
- bytes – заданий масив деякої довжини. Заповнюються всі елементи масиву. Значення елементів масиву лежать в межах [-128; 127].
Приклад.
import java.util.Random; public class MathFunctions { public static void main(String[] args) { // 1. Створити потік на основі довільного початкового значення Random rnd = new Random(); // 2. Створити масив AB з 10 елементів типу byte byte[] AB = new byte[10]; // 3. Заповнити масив AB випадковими числами rnd.nextBytes(AB); // 4. Вивести масив на екран System.out.println("Array AB:"); for (int i=0; i<AB.length; i++) System.out.println(AB[i]+" "); } }
Результат
Array AB: -67 -86 98 -61 16 -44 -73 96 -40 -80
⇑
Споріднені теми
⇑