Java nodrošina trīs veidus, kā ģenerēt nejaušus skaitļus, izmantojot dažas tālāk norādītās iebūvētās metodes un klases:
java virknes formāts
- java.util.Random class Math.random metode: var ģenerēt dubultā tipa nejaušus skaitļus. ThreadLocalRandom klase
1) java.util.Random
- Lai izmantotu šo klasi nejaušu skaitļu ģenerēšanai, mums vispirms ir jāizveido šīs klases gadījums un pēc tam jāizsauc tādas metodes kā nextInt(), nextDouble(), nextLong() utt., izmantojot šo gadījumu.
- Izmantojot šo klasi, mēs varam ģenerēt nejaušus veselu skaitļu, peldošo, dubulto, garo, Būla veidu skaitļus.
- Mēs varam nodot argumentus metodēm augšējās robežas noteikšanai ģenerējamo skaitļu diapazonam. Piemēram, nextInt(6) ģenerēs skaitļus diapazonā no 0 līdz 5 (ieskaitot).
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);> >}> }> |
>
>Izvade
Random Integers: 618 Random Integers: 877 Random Doubles: 0.11981638980670772 Random Doubles: 0.7288425427367139>
2) Math.random()
Klase Matemātika satur dažādas metodes dažādu ciparu operāciju veikšanai, piemēram, eksponenci, logaritmus utt. Viena no šīm metodēm ir random(), šī metode atgriež dubultu vērtību ar pozitīvu zīmi, kas ir lielāka vai vienāda ar 0,0 un mazāka par 1,0 . Atgrieztās vērtības tiek izvēlētas pseido nejauši. Šī metode var ģenerēt tikai nejaušus skaitļus, kuru tips ir Doubles. Zemāk programma paskaidro, kā izmantot šo metodi:
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());> >}> }> |
>
>
meklētājprogramma un piemēriIzvade
Random doubles: 0.40748894116045375 Random doubles: 0.006683607229094002>
3) java.util.concurrent.ThreadLocalRandom klase
Šī klase ir ieviesta Java 1.7, lai ģenerētu nejaušus veselus skaitļus, divkāršus, Būla skaitļus utt. Tālāk programma paskaidro, kā izmantot šo klasi, lai ģenerētu nejaušus skaitļus:
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);> >}> }> |
>
document.queryselector
>Izvade
Random Integers: -2106603442 Random Integers: 1894823880 Random Doubles: 0.6161052280172054 Random Doubles: 0.8418944588752132 Random Booleans: false Random Booleans: true>
Lai ģenerētu nejaušus skaitļus ar noteiktiem diapazoniem. Ir 2 dažādi veidi, kā to izdarīt:
- Izmantojot izlases klasi
- Izmantojot Math.random() metodi
1. Izmantojot izlases klasi
Šeit ir formula, lai ģenerētu nejaušus skaitļus ar noteiktu diapazonu, kur min un max ir mūsu zemākā un augstākā skaitļa robeža.
Random Random = new Random();
int randomNum = rand.nextInt(max – min + 1) + min;
Java
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);> >}> }> |
>
binārais koks java
>Izvade
atšķirība starp lapsu un vilku
Generated numbers are within 50 to 100 58 87 55>
Laika sarežģītība: tās laika sarežģītība ir O (1)
Papildtelpa: O(1) nepieciešama pastāvīga telpa.
2. Izmantojot Math.random() metodi
Šeit ir formula nejauša skaitļa ģenerēšanai ar noteiktu diapazonu, kur min un max ir mūsu zemākā un augstākā skaitļa robeža:
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>)));> >}> }> |
>
>Izvade
Generated numbers are within 50 to 100 53 99 77>
Laika sarežģītība: tās laika sarežģītība ir O (1)
Papildtelpa: O(1) nepieciešama pastāvīga telpa.