Satunnaisia numeroita käytetään laajasti ohjelmoinnissa simulaatioiden pelien turvallisuuteen jne. On olemassa useita tapoja luoda satunnaisia lukuja käyttämällä Javassa sisäänrakennettuja menetelmiä ja luokkia. The most commonly used approaches are listed below:
- java.util.Satunnainen luokka
- Math.random() -metodi (palauttaa kaksinkertaiset arvot)
- ThreadLocalRandom-luokka (käyttöön otettu Java 7:ssä)
Tarkastellaan jokaista näistä lähestymistavoista yksitellen yksityiskohtaisesti
1. Käyttämällä java.util.Random
Tärkeimmät menetelmät:
jousenrakentaja
- nextInt(): Tämä menetelmä luo satunnaisen kokonaisluvun (koko alueen negatiivit mukaan lukien)
- nextInt(int sidottu): Tämä menetelmä luo satunnaisen kokonaisluvun välillä 0 (mukaan lukien) ja sidottu (poissulkeva)
- nextDouble(): Tämä menetelmä luo satunnaisen tuplauksen välillä 0,0 (mukaan lukien) ja 1,0 (ei sisällä)
- nextBoolean(): Satunnainen tosi tai taru
Esimerkki :
Java// Generating random number using java.util.Random; import java.util.Random; public class Geeks{ public static void main(String[] args) { // Creating the instance of Random class Random r= new Random(); // Generate random integers in range 0 to 999 int r1 = r.nextInt(1000); int r2 = r.nextInt(1000); // Printing random integers System.out.println('Random Integers: ' + r1); System.out.println('Random Integers: ' + r2); // Generate random doubles double rd1 = r.nextDouble(); double rd2 = r.nextDouble(); // Printing random doubles System.out.println('Random Doubles: ' + rd1); System.out.println('Random Doubles: ' + rd2); } }
Lähtö
Random Integers: 39 Random Integers: 190 Random Doubles: 0.4200728082969115 Random Doubles: 0.9327571841228275
Numeroiden luominen tietyllä alueella
pythonin koko
Kaava satunnaisluvun luomiseksi tietyllä alueella on lueteltu alla:
Satunnainen rand = new Random();
int satunnaisluku = rand.nextInt(max - min + 1) + min;
Huomautus: min ja max ovat ala- ja ylärajamme.
Esimerkki:
Java// Generating random number in a specific range import java.io.*; import java.util.*; class Geeks { public static void main (String[] args) { Random r = new Random(); int max=100min=50; System.out.println('Generated numbers are within '+ min +' to '+ max); System.out.println(r.nextInt(max - min + 1) + min); System.out.println(r.nextInt(max - min + 1) + min); System.out.println(r.nextInt(max - min + 1) + min); } }
Lähtö
Generated numbers are within 50 to 100 55 51 51
2. Math.random()
The Matematiikan luokka sisältää erilaisia menetelmiä erilaisten numeeristen operaatioiden suorittamiseen, kuten eksponentiologaritmien laskemiseen jne. Yksi näistä menetelmistä on satunnainen () Tämä menetelmä palauttaa kaksoisarvon, jonka positiivinen etumerkki on suurempi tai yhtä suuri kuin 0,0 ja pienempi kuin 1,0. Palautetut arvot valitaan näennäissatunnaisesti. Tämä menetelmä voi tuottaa vain satunnaislukuja, jotka ovat Doubles-tyyppisiä.
Esimerkki:
kuinka int muunnetaan merkkijonoksiJava
// Java program to demonstrate working of // Math.random() to generate random numbers import java.util.*; public class Geeks { public static void main(String args[]) { // Generating random doubles System.out.println('Random doubles: ' + Math.random()); System.out.println('Random doubles: ' + Math.random()); } }
Lähtö
Random doubles: 0.38601320746656065 Random doubles: 0.9209882942481417
Numeroiden luominen tietyllä alueella
Tässä on kaava satunnaisluvun luomiseksi tietyllä alueella, jossa min ja max ovat ala- ja ylärajamme:
kuinka monta viikkoa kuukaudessa
int satunnaisluku = min + (int)(Math.random() * ((max - min) + 1));
Esimerkki:
Java// Demonstrating how to generate random // number within a specific range import java.io.*; import java.util.*; class Geeks { public static void main (String[] args) { int max=100min=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))); } }
Lähtö
Generated numbers are within 50 to 100 82 68 77
3. ThreadLocalRandom-komennolla
Tämä on suositeltava tapa monisäikeisissä ympäristöissä, koska se vähentää kiistaa.
Tärkeimmät menetelmät:
- nykyinen().seuraavaInt(): Satunnainen kokonaisluku (koko alue)
- nykyinen().seuraavaInt(min max + 1): Satunnainen kokonaisluku alueella (Olen lisännyt tämän rajoitetun esimerkin)
- nykyinen().seuraavaDouble(): Satunnainen tupla (0,0 - 1,0)
- nykyinen().nextBoolean(): Satunnainen tosi tai taru
Esimerkki:
Java// Demonstrates how to generate random integers // doubles and booleans using ThreadLocalRandom import java.util.concurrent.ThreadLocalRandom; public class Geeks { public static void main(String[] args) { // Generate random integers in range 0 to 999 // Random number between 0 and 999 int r1 = ThreadLocalRandom.current().nextInt(1000); // Random number between 0 and 999 int r2 = ThreadLocalRandom.current().nextInt(1000); // Print random integers System.out.println('Random Integers: ' + r1); System.out.println('Random Integers: ' + r2); // Generate Random doubles between 0.0 (inclusive) // and 1.0 (exclusive) double rd1 = ThreadLocalRandom.current().nextDouble(); double rd2 = ThreadLocalRandom.current().nextDouble(); // Print random doubles System.out.println('Random Doubles: ' + rd1); System.out.println('Random Doubles: ' + rd2); // Generate random booleans boolean rb1 = ThreadLocalRandom.current().nextBoolean(); boolean rb2 = ThreadLocalRandom.current().nextBoolean(); // Print random Booleans System.out.println('Random Booleans: ' + rb1); System.out.println('Random Booleans: ' + rb2); } }
Lähtö
Random Integers: 812 Random Integers: 461 Random Doubles: 0.7420865203902993 Random Doubles: 0.9580683365617423 Random Booleans: false Random Booleans: false