Генерацыя выпадковых лікаў на Java

Стварэнне выпадковых лікаў у Java - звычайная задача. Напрыклад, вы можаце кожны раз выконваць тэсты са выпадковымі значэннямі. У гэтым пасце мы разглядаем розныя спосабы стварэння выпадковых лікаў у Java.



Як стварыць выпадковыя лікі ў Java

У Java мы можам ствараць выпадковыя лікі, выкарыстоўваючы java.util.Random клас.

Пасля імпарту класа Random мы можам стварыць з яго аб'ект, які дае нам магчымасць выкарыстоўваць выпадковыя лікі.


Напрыклад, метады nextInt() і nextLong() верне лік, якое знаходзіцца ў дыяпазоне значэнняў (адмоўнае і станоўчае) тыпаў дадзеных int і long адпаведна.



Стварэнне выпадковых Int, Long і Boolean

import java.util.Random; public class GenerateRandomNumbers {
static Random rand;
public static void main(String[] args) {
rand = new Random();
System.out.println('Random integer: ' + rand.nextInt());
System.out.println('Random long: ' + rand.nextLong());
System.out.println('Random boolean: ' + rand.nextBoolean());
} }


Стварэнне выпадковых лікаў у дыяпазоне

Часам мы хочам, каб выпадковыя лікі ствараліся з пэўнага дыяпазону, напрыклад паміж 1 і 50.


Для гэтага мы можам задаць цэлы параметр nextInt() метад. Гэты параметр вызначае верхнюю мяжу для дыяпазону.



Тут трэба адзначыць, што нумар верхняй мяжы не ўваходзіць у лік генеруемых лікаў. Напрыклад, nextInt(5) генеруе лікі з 0 да 4 уключна.

Калі мы таксама жадаем 5 каб апынуцца ў спісе выпадковых лікаў, нам трэба выкарыстоўваць nextInt(5)+1

import java.util.Random; public class GenerateRandomNumbers {
static Random rand;
public static void main(String[] args) {
rand = new Random();
int randInt = rand.nextInt(5) + 1;
System.out.println('Random integer: ' + randInt);
} }


Стварэнне бяспечных выпадковых лікаў на Java

Клас Random генеруе выпадковыя лікі дэтэрмінаваным спосабам. Алгарытм, які вырабляе выпадковасць, заснаваны на ліку, якое называецца насеннем. Калі нумар насення вядомы, можна высветліць лічбы, якія будуць атрыманы з алгарытму.


Мэта SecureRandom Клас - гэта генерацыя крыптаграфічна моцных выпадковых лікаў.

SecureRandom павінны вырабляць недэтэрмінаваную прадукцыю. Таму любы насенны матэрыял перадаецца ў SecureRandom аб'ект павінен быць непрадказальным.

Ніжэй прыведзены прыклад выкарыстання SecureRandom клас для генерацыі выпадковых лікаў у Java

import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.SecureRandom; public class GenerateRandomNumbers {
static SecureRandom secureRandomGenerator;
public static void main(String[] args) {


try {

secureRandomGenerator = SecureRandom.getInstance('SHA1PRNG', 'SUN');
}

catch (NoSuchAlgorithmException | NoSuchProviderException e) {
}

//Get random integer in range
int randInRange = secureRandomGenerator.nextInt(499);
System.out.println(randInRange);
} }

Прыведзеныя вышэй прыклады ілюструюць, як генераваць выпадковыя лікі ў Java.


Даведка: Бяспечнае пакаленне выпадковых лікаў