Java ponuja tri načine za ustvarjanje naključnih števil z uporabo nekaterih vgrajenih metod in razredov, kot je navedeno spodaj:
- java.util.Random class Math.random method : lahko ustvari naključna števila dvojnega tipa. Razred ThreadLocalRandom
1) java.util.Random
- Za uporabo tega razreda za generiranje naključnih števil moramo najprej ustvariti primerek tega razreda in nato z uporabo tega primerka poklicati metode, kot so nextInt(), nextDouble(), nextLong() itd.
- S tem razredom lahko ustvarimo naključna števila tipov integers, float, double, long, booleans.
- Metodam lahko posredujemo argumente za postavitev zgornje meje obsega števil, ki jih je treba ustvariti. Na primer, nextInt(6) bo ustvaril številke v obsegu od 0 do vključno 5.
Java
// A Java program to demonstrate random number generation> // using java.util.Random;> import> java.util.Random;> > public> class> generateRandom{> > >public> static> void> main(String args[])> >{> >// create instance of Random class> >Random rand =>new> Random();> > >// Generate random integers in range 0 to 999> >int> rand_int1 = rand.nextInt(>1000>);> >int> rand_int2 = rand.nextInt(>1000>);> > >// Print random integers> >System.out.println(>'Random Integers: '>+rand_int1);> >System.out.println(>'Random Integers: '>+rand_int2);> > >// Generate Random doubles> >double> rand_dub1 = rand.nextDouble();> >double> rand_dub2 = rand.nextDouble();> > >// Print random doubles> >System.out.println(>'Random Doubles: '>+rand_dub1);> >System.out.println(>'Random Doubles: '>+rand_dub2);> >}> }> |
java pretvori niz v int
>
>Izhod
Random Integers: 618 Random Integers: 877 Random Doubles: 0.11981638980670772 Random Doubles: 0.7288425427367139>
2) Math.random()
Razred Math vsebuje različne metode za izvajanje različnih numeričnih operacij, kot so izračun stopnjevanja, logaritmov itd. Ena od teh metod je random(), ta metoda vrne dvojno vrednost s pozitivnim predznakom, večjo ali enako 0,0 in manjšo od 1,0. . Vrnjene vrednosti so izbrane psevdonaključno. Ta metoda lahko ustvari le naključna števila tipa Doubles. Spodnji program pojasnjuje, kako uporabiti to metodo:
Java
// Java program to demonstrate working of> // Math.random() to generate random numbers> import> java.util.*;> > public> class> generateRandom> {> >public> static> void> main(String args[])> >{> >// Generating random doubles> >System.out.println(>'Random doubles: '> + Math.random());> >System.out.println(>'Random doubles: '> + Math.random());> >}> }> |
>
>
android proces acoreIzhod
Random doubles: 0.40748894116045375 Random doubles: 0.006683607229094002>
3) razred java.util.concurrent.ThreadLocalRandom
Ta razred je bil predstavljen v Javi 1.7 za generiranje naključnih števil tipa cela števila, dvojne vrednosti, logične vrednosti itd. Spodnji program pojasnjuje, kako uporabiti ta razred za generiranje naključnih števil:
Java
// Java program to demonstrate working of ThreadLocalRandom> // to generate random numbers.> import> java.util.concurrent.ThreadLocalRandom;> > public> class> generateRandom> {> >public> static> void> main(String args[])> >{> >// Generate random integers in range 0 to 999> >int> rand_int1 = ThreadLocalRandom.current().nextInt();> >int> rand_int2 = ThreadLocalRandom.current().nextInt();> > >// Print random integers> >System.out.println(>'Random Integers: '> + rand_int1);> >System.out.println(>'Random Integers: '> + rand_int2);> > >// Generate Random doubles> >double> rand_dub1 = ThreadLocalRandom.current().nextDouble();> >double> rand_dub2 = ThreadLocalRandom.current().nextDouble();> > >// Print random doubles> >System.out.println(>'Random Doubles: '> + rand_dub1);> >System.out.println(>'Random Doubles: '> + rand_dub2);> > >// Generate random booleans> >boolean> rand_bool1 = ThreadLocalRandom.current().nextBoolean();> >boolean> rand_bool2 = ThreadLocalRandom.current().nextBoolean();> > >// Print random Booleans> >System.out.println(>'Random Booleans: '> + rand_bool1);> >System.out.println(>'Random Booleans: '> + rand_bool2);> >}> }> |
>
podčrtaj besedilo s css
>Izhod
Random Integers: -2106603442 Random Integers: 1894823880 Random Doubles: 0.6161052280172054 Random Doubles: 0.8418944588752132 Random Booleans: false Random Booleans: true>
Za ustvarjanje naključnih števil z določenimi razponi. Obstajata 2 različna načina za to:
- Uporaba naključnega razreda
- Uporaba metode Math.random().
1. Uporaba naključnega razreda
Tukaj je formula za ustvarjanje naključnih števil z določenim obsegom, kjer sta min in max naša spodnja in zvišana meja števila.
Naključno rand = novo Naključno();
int randomNum = rand.nextInt(max – min + 1) + min;
Java
nginx
import> java.io.*;> import> java.util.*;> class> GFG {> >public> static> void> main (String[] args) {> >Random rand =>new> Random();> >int> max=>100>,min=>50>;> >System.out.println(>'Generated numbers are within '>+min+>' to '>+max);> >System.out.println(rand.nextInt(max - min +>1>) + min);> >System.out.println(rand.nextInt(max - min +>1>) + min);> >System.out.println(rand.nextInt(max - min +>1>) + min);> >}> }> |
>
>Izhod
Generated numbers are within 50 to 100 58 87 55>
Časovna kompleksnost: ima časovno kompleksnost O(1)
Pomožni prostor: O(1) zahteva stalni prostor.
2. Uporaba metode Math.random().
Tukaj je formula za ustvarjanje naključnega števila z določenim obsegom, kjer sta min in max naša spodnja in zvišana meja števila:
java string format long
int randomNum = min + (int)(Math.random() * ((max – min) + 1));
Java
/*package whatever //do not write package name here */> import> java.io.*;> import> java.util.*;> class> GFG {> >public> static> void> main (String[] args) {> >int> max=>100>,min=>50>;> >System.out.println(>'Generated numbers are within '>+min+>' to '>+max);> >System.out.println(min + (>int>)(Math.random() * ((max - min) +>1>)));> >System.out.println(min + (>int>)(Math.random() * ((max - min) +>1>)));> >System.out.println(min + (>int>)(Math.random() * ((max - min) +>1>)));> >}> }> |
>
>Izhod
Generated numbers are within 50 to 100 53 99 77>
Časovna kompleksnost: ima časovno kompleksnost O(1)
Pomožni prostor: O(1) zahteva stalni prostor.