„Java“ siūlo tris būdus, kaip generuoti atsitiktinius skaičius, naudojant kai kuriuos toliau nurodytus integruotus metodus ir klases:
- java.util.Atsitiktinė klasė Math.random metodas: gali generuoti atsitiktinius dvigubo tipo skaičius. ThreadLocalRandom klasė
1) java.util.Random
- Norėdami naudoti šią klasę atsitiktiniams skaičiams generuoti, pirmiausia turime sukurti šios klasės egzempliorių ir tada panaudoti tokius metodus kaip nextInt(), nextDouble(), nextLong() ir kt.
- Naudodami šią klasę galime sugeneruoti atsitiktinius sveikųjų skaičių, plūduriuojančių, dvigubų, ilgųjų, loginių skaičių.
- Argumentus galime perduoti metodams, kaip nustatyti generuojamų skaičių diapazono viršutinę ribą. Pavyzdžiui, nextInt(6) generuos skaičius nuo 0 iki 5 imtinai.
Java
java poeilutės metodas
// 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);> >}> }> |
>
>Išvestis
Random Integers: 618 Random Integers: 877 Random Doubles: 0.11981638980670772 Random Doubles: 0.7288425427367139>
2) Matematika.atsitiktinis()
Matematikos klasėje yra įvairių metodų, skirtų įvairioms skaitinėms operacijoms atlikti, pavyzdžiui, eksponencijos skaičiavimas, logaritmai ir kt. Vienas iš šių metodų yra atsitiktinis(), šis metodas grąžina dvigubą reikšmę su teigiamu ženklu, didesnę arba lygią 0,0 ir mažesnę nei 1,0 . Grąžinamos reikšmės parenkamos pseudo atsitiktinai. Šis metodas gali generuoti tik atsitiktinius dvigubų tipų skaičius. Žemiau esančioje programoje paaiškinama, kaip naudoti šį metodą:
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());> >}> }> |
>
>Išvestis
Random doubles: 0.40748894116045375 Random doubles: 0.006683607229094002>
3) java.util.concurrent.ThreadLocalRandom klasė
Ši klasė įdiegta Java 1.7 versijoje, norint generuoti atsitiktinius sveikųjų, dvigubų, loginių ir tt skaičius. Žemiau programa paaiškina, kaip naudoti šią klasę atsitiktiniams skaičiams generuoti:
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);> >}> }> |
dabartinė java data
>
>Išvestis
Random Integers: -2106603442 Random Integers: 1894823880 Random Doubles: 0.6161052280172054 Random Doubles: 0.8418944588752132 Random Booleans: false Random Booleans: true>
Norėdami generuoti atsitiktinius skaičius su konkrečiais diapazonais. Yra 2 skirtingi būdai tai padaryti:
- Naudojant atsitiktinę klasę
- Naudojant Math.random() metodą
1. Atsitiktinės klasės naudojimas
Čia yra formulė, skirta generuoti atsitiktinius skaičius su tam tikru diapazonu, kur min ir max yra mūsų apatinė ir aukštesnė skaičiaus riba.
Atsitiktinis rand = naujas Atsitiktinis();
int atsitiktinisSkaičius = rand.nextInt(maks. – min + 1) + min;
Java
string in int
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);> >}> }> |
>
>Išvestis
Generated numbers are within 50 to 100 58 87 55>
Laiko sudėtingumas: jo laiko sudėtingumas yra O(1)
Pagalbinė erdvė: O(1) reikalinga pastovi erdvė.
2. Naudojant Math.random() metodą
Čia yra formulė, skirta generuoti atsitiktinį skaičių su konkrečiu diapazonu, kur min ir max yra mūsų apatinė ir aukštesnė skaičiaus riba:
int atsitiktinisSkaičius = min + (int)(Math.random() * ((maks. – 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>)));> >}> }> |
>
>Išvestis
Generated numbers are within 50 to 100 53 99 77>
Laiko sudėtingumas: jo laiko sudėtingumas yra O(1)
Pagalbinė erdvė: O(1) reikalinga pastovi erdvė.
java yra pavyzdys