CodeGym /Java блог /Случаен /Клас Java.util.Random
John Squirrels
Ниво
San Francisco

Клас Java.util.Random

Публикувано в групата

Какво е клас java.util.Random в Java?

Класът java.util.Random се използва за генериране на псевдослучайни числа. Методите, реализирани от този клас, се използват за генериране на различни произволни типове данни като int, double и float. Така че има два основни вида случайни числа, статистически случайни и псевдослучайни числа . Статистически произволните числа (като обикновените произволни числа в математиката) са набор от стойности, които нямат разпознаваем модел. Например, хвърлянето на зар 10 пъти ще генерира произволно число всеки път, което няма ниHowъв разпознаваем модел.

Какво представляват псевдослучайните числа?

Това е набор от стойности, които са статистически случайни, но имат известна начална точка . В Java всяко псевдослучайно число се произвежда чрез алгоритъм. Така че обикновено един цикъл се повтаря всеки път, когато java.util.Random генерира произволно число. Генератор на произволни числа в Java ще произвежда статистически произволни числа, но с известна начална точка, генерирани от алгоритъм. Това прави тези стойности псевдослучайни.

Криптографски несигурен ли е класът java.util.Random?

Той е криптографски несигурен, защото има внедрени алгоритми за генериране на произволни числа. В резултат на което човек, който знае How работи алгоритъмът, няма да отнеме много време за достъп до вашите чувствителни данни. Така че, ако работите с някои applications за сигурност, необходими за защита на някои чувствителни данни or трябва да генерирате произволни пароли, тогава е по-добре да избягвате използването на този клас. Полезно е в много случаи като генериране на произволно число за вашето хвърляне на зарове в лудо, хазарт, пequalsе на хвърляне за мач or други области, където желаният от вас резултат е непредвидим.

Декларация на метода

За да използвате методите на този клас, първо трябва да го импортирате от пакета as

import java.util.Random;
След импортирането трябва да създадете обект от този клас като

Random randomNumbers = new Random();
Продължавайки по-нататък, нека да разгледаме различни примери за използване на класа java.util.Random .

Пример


import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();
		
		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which 
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);
		
		/*
		 * Returns the next pseudo random integer value between 0 and 5  
		 * because if we use '6' then, it will give random numbers from 0 to 6 
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		
		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);
		
		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */
		
		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);
		
		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Изход

----------Произволно булево--------- Произволната булева стойност е: true ----------Произволно цяло число--------- Die Хвърляне: 4 Хвърляне на зар: 6 Хвърляне на зар: 1 Хвърляне на зар: 1 Хвърляне на зар: 3 ----------Произволна дълга--------- Произволна дълга стойност: -6029959293504570824 ---- ------Случайни byteове--------- Това са произволните byteове = [ -37 90 -98 -70 23 -111 19 108 ]

Методи

Сега ще обсъдим някои от методите, предоставени от този клас, като имаме предвид, че randomNumbers е обектът or екземплярът на нашия клас.
  1. удвоява () :

    Този метод връща безкрайна поредица от псевдослучайно генерирани двойни стойности. Сега нека видим How да използваме този метод.

    
    randomNumbers.doubles();
    
  2. ints() :

    Този метод връща безкрайна поредица от псевдослучайно генерирани цели числа. Можете да използвате следния скрипт, за да извикате този метод.

    
    randomNumbers.ints();
    
  3. longs() :

    Този метод връща безкрайна поредица от псевдослучайно генерирани дълги стойности. Следният скрипт се използва за извикване на този метод.

    
    randomNumbers.longs();
    
  4. nextBoolean() :

    Този метод връща следващата равномерно разпределена псевдослучайна булева стойност от последователността на генератора на произволни числа. Равномерното разпределение е с правоъгълна форма, което означава, че всяка стойност в разпределението има еднаква вероятност. Ето How да използвате този метод.

    
    randomNumbers.nextBoolean();
    
  5. nextInt(int n) :

    Този метод връща следващата равномерно разпределена псевдослучайна целочислена стойност от последователността на генератора на случайни числа между 0 включително и предоставената изключителна стойност. Разгледайте бързо How да използвате този метод.

    
    randomNumbers.nextInt(10);
    

Заключение

Надяваме се вече да сте разбрали Howво е java.util.Random и How да внедрите различните му методи и в Howъв сценарий да го използвате. Винаги можете да използвате този клас в java. Чувствайте се свободни да тренирате и се връщайте тук, когато имате нужда от повече помощ. Приятно учене!
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION