Java Random Number Generation

Að búa til slembitölur í Java er algengt verkefni. Til dæmis gætirðu viljað framkvæma próf með handahófi í hvert skipti. Í þessari færslu skoðum við mismunandi leiðir til að búa til slembitölur í Java.

Hvernig á að búa til slembitölur á Java

Í Java getum við búið til handahófi tölur með því að nota java.util.Random bekk.

Þegar við höfum flutt inn Random bekkinn getum við búið til hlut úr honum sem gefur okkur möguleika á að nota handahófi tölur.

Til dæmis aðferðir nextInt() og nextLong() mun skila tölu sem er innan gildissviðsins (neikvæð og jákvæð) int og löngu gagnategundirnar í sömu röð.

Búa til handahófi Int, Long og 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());
} }

Búa til handahófi tölur á bilinu

Stundum viljum við búa til handahófi tölur frá ákveðnu sviði, t.d. milli 1 og 50.

Til að gera þetta getum við veitt heiltölu breytu á nextInt() aðferð. Þessi færibreyta skilgreinir efri mörk sviðsins.



Eitt sem þarf að hafa í huga hér er að efri mörkin eru ekki með sem ein af tölunum sem eru myndaðar. Til dæmis, nextInt(5) býr til tölur úr 0 til 4 innifalið.

Ef við viljum líka 5 til að vera á listanum yfir handahófi tölurnar verðum við að nota 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);
} }

Búa til öruggar slembitölur í Java

Random bekkurinn býr til slembitölur á afgerandi hátt. Reikniritið sem framleiðir handahófi er byggt á tölu sem kallast fræ. Ef frænúmerið er þekkt er mögulegt að reikna út tölurnar sem verða framleiddar með reikniritinu.

Markmiðið með SecureRandom Class er að búa til dulmálsterkar slembitölur.

The SecureRandom verður að framleiða framleiðslu sem ekki er afgerandi. Þess vegna er allt fræefni sent til a SecureRandom hlutur verður að vera óútreiknanlegur.

Hér að neðan er dæmi um notkun á SecureRandom bekk til að búa til slembitölur í 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);
} }

Ofangreind dæmi sýna hvernig á að búa til slembitölur í Java.

Tilvísun: Örugg kynslóð af handahófi