Що таке генератор випадкових чисел на Java?

Випадкові номери зазвичай використовуються для створення таких додатків, як кістки для настільних ігор, азартних програм тощо. Зазвичай генерація випадкових чисел займає багато часу. Але в мові програмування Java цього можна досягти, використовуючи три способи. Вони розглядаються нижче в розділі Функції генератора випадкових чисел на Java.

Функції генератора випадкових чисел на Java

У Java випадкові номери можна генерувати, використовуючи 3 способи:

  • Math. випадковий метод
  • java.util.Random class
  • Клас ThreadLocalRandom

1. Метод Math.random ()

Клас Java Math пропонує ряд методів для роботи над обчисленнями, такі як логарифми, середнє значення, експоненція тощо. Random () - один із методів серед них, який повертає додатне подвійне значення в межах 0, 0 та 1, 0, де 0, 0 включно і 1.0 є ексклюзивним. Цей метод можна використовувати з використанням параметрів або без них. Якщо параметри задані, генерується випадкове число буде в межах заданого параметра.

Приклад №1

Код:

public class RandomNumber (
double num; //Declare a variable num
//Method which generates a random number
public double randnum()
(
num=Math.random();
return num;
)
// Main Method of a program
public static void main(String() args) (
//Printing a random number
System.out.println("Random Number generated inside main method: "+Math.random());
//Create an object of the class RandomNumber
RandomNumber randomobj=new RandomNumber();
//Store the return value obtained from randnum method in a variable randomval
double randomval=randomobj.randnum();
//Printing the random number stored in variable randomval
System.out.println("Random Number generated inside randomnumber method: "+randomval);
)
)

Вихід:

У наведеному вище прикладі випадкове число генерується за допомогою методу Math.random () двома способами - безпосередньо його застосування всередині основного методу та виклик методу, який містить Math.random () за допомогою об'єкта. Як було сказано в поясненні вище, ми можемо бачити, що 2 випадкових числа генеруються в межах 0, 0 та 1, 0.

Для генерації випадкового числа в діапазоні параметрів нижче використовується загальне вираження:

Math.random () * ((maxvalue - minvalue) +1) + minvalue

Приклад №2

Де максимальне значення - це верхня межа діапазону, а мінімальне значення - нижня межа діапазону. Наприклад, щоб генерувати випадкове число між 10 і 20, встановіть максимальне значення як 20, а мінімальне значення - 10.

Код:

public class RandomNumParameters (
public double randomnum(double x, double y)//max value-y, min value-x
(
double z =(Math.random()*((yx)+1)+x); //Formula for random number generation within a range
return z;
)
public static void main(String() args)
(
RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters
double num=ran.randomnum(3.0, 10.0); //Call the Method
System.out.println("Random number generated within the range of 3 and 10: "+num );
) )

Вихід:

2. java.util.Random Class

Клас Java.util.Random генерує випадкові числа різних типів даних, таких як float, long, integer, double, Boolean тощо. Також можливо передавати діапазон чисел як аргументи, щоб у цьому діапазоні генерувалося випадкове число . Для використання цього класу необхідно імпортувати клас Random java.util (java.util.Random). Після імпорту цього класу створіть екземпляр і зателефонуйте на такі методи, як next long (), nextInt () тощо, використовуючи цей екземпляр.

Приклад №1

Код:

//Java program to generate Random numbers using Random class
package Sample;
import java.util.Random; //import Random Class
public class RandomNum (
public static void main(String() args) (
Random rand=new Random(); //Create instance of Random class
double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable
System.out.println("Random Double value: "+ randomnum);
)
)

Вихід:

У вищевказаній програмі генерується випадкове подвійне значення за допомогою методу nextDouble ().

3. Клас ThreadLocalRandom

Клас ThreadLocalRandom - це спеціалізований тип класу Random, який вводиться у версії Java 1.7. ThreadLocalRandom.current (). NextInt () - один із поширених методів, який використовується для генерації випадкових чисел. Зазвичай використовується в багатопотокових програмах.

Приклад №1

Код:

//Java Program to generate random numbers using ThreadLocalRandom Class
import java.util.concurrent.ThreadLocalRandom;
public class RandomNumThread (
public static void main(String() args) (
//print a random double
System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble());
)
)

Вихід:

Покоління цілих чисел

Випадкові цілі числа можуть бути згенеровані за допомогою класу ThreadLocalRandom та Random Class. В обох випадках метод nextInt () використовується для того ж:

Приклад №1

Код:

//Java program to generate Random integer numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomInteger (
public static void main(String() args) (
Random rnd=new Random(); //Create instance of Random class
int randomnum1=rnd.nextInt(); //Random Integer value using Random Class
int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30
int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class
System.out.println("Random Integer value using Random Class: "+ randomnum1);
System.out.println("Random Integer value within the range of 30: "+ randomnum2);
System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3);
)
)

Вихід:

У наведеному вище прикладі створюються три числа випадкових цілих чисел, де один із методів nextInt () містить 30 в якості аргументу. Отже, при генерації випадкового числа 30 буде встановлено як верхня межа, а нуль (нижня межа за замовчуванням) буде встановлено як нижня межа.

Генерування чисел з плаваючою точкою

Подібно до генерації цілих чисел, номери з плаваючою комою можуть бути створені за допомогою методу nextFloat (). Цей метод може бути використаний як у класах випадкових, так і в класах ThreadLocalRandom:

Приклад №1

Код:

//Java program to generate Random Float numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomFloat (
public static void main(String() args) (
Random rnd=new Random(); //Create instance of Random class
float randomnum1=rnd.nextFloat(); //Random Float value using Random Class
float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class
System.out.println("Random float value using Random Class: "+ randomnum1);
System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2);
)
)

Вихід:

Висновок

Java містить безліч функцій, які можна використовувати в програмах. Це допомагає скоротити час обробки та рядки коду. Генерація випадкових чисел - одне завдання, де ми можемо використовувати деякі з цих функцій. Цей документ охоплює різні методи досягнення цього.

Рекомендовані статті

Це посібник з генератора випадкових чисел на Java. Тут ми обговорюємо функції в java з прикладами та двома різними генераторами. Ви також можете ознайомитись з іншими нашими пов’язаними статтями, щоб дізнатися більше -

  1. Генератор випадкових чисел у Python
  2. Генератор випадкових чисел у С
  3. Генератор випадкових чисел в R
  4. Рекурсія на Java
  5. Генератор випадкових чисел у Matlab
  6. Генератор випадкових чисел у C #
  7. Масиви в програмуванні Java
  8. Генератор випадкових чисел у JavaScript
  9. Генератор випадкових чисел у PHP