Računanje slučajnih brojeva može biti osnovni dio mnogih aplikacija, posebno u razvoju igara, statističkom modeliranju i simulacijama. Programski jezik Java pruža ugrađenu funkciju za generiranje takvih nasumičnih brojeva. Jedna funkcija je Math.random(), iako generiše dvostruke vrijednosti između 0.0 (uključivo) i 1.0 (isključivo). Za generiranje nasumičnih cijelih brojeva unutar određenog raspona kao što je od 1 do 10, potrebni su dodatni koraci. Ovaj članak se bavi kreiranjem nasumičnih brojeva između 1 i 10 u Javi pomoću Math.random().
Generiranje slučajnih brojeva pomoću Math.random()
Java-ina funkcija Math.random() vraća pozitivnu dvostruku vrijednost koja je veća ili jednaka 0.0 i manja od 1.0. Ove vrijednosti se generiraju pseudoslučajno, što znači da njihovo generiranje slijedi određeni algoritam, ali se korisniku čini nasumično.
double randomValue = Math.random();
Međutim, za generiranje cijelog broja između 1 i 10, ne možemo direktno koristiti Math.random(). Umjesto toga, moramo manipulirati dvostrukom vrijednošću koju vraća Math.random().
Metoda za generiranje nasumičnih cijelih brojeva između 1 i 10
Da bismo simulirali kreiranje slučajnog cijelog broja između 1 i 10, pomnožit ćemo rezultat Math.random() sa 10, dodati 1, a zatim baciti rezultat na cijeli broj (jer Math.random() vraća dvostruko) . Prevođenje na cijeli broj skraćuje decimalni dio, dajući nam na taj način cjelobrojnu vrijednost.
int randomInteger = (int)(Math.random() * 10 + 1);
Ovaj kod radi jer Math.random() daje vrijednost od 0.0 do nešto ispod 1.0. Kada ovo pomnožite sa 10, proteže se raspon od 0.0 do malo ispod 10.0. Dodavanje 1 pomjera ovaj raspon od 1.0 do malo ispod 11.0.
Korak po korak raščlanjivanje
Zaronimo dublje u kako kod radi:
1.
- Poziva se funkcija Math.random() koja vraća pseudoslučajni duplikat veći ili jednak 0.0 i manji od 1.0.
- Ova dvostruka vrijednost se zatim množi sa 10. Sada dvostruka vrijednost pada između 0.0 i 10.0, još uvijek manje od 10.0
- Rezultatu dodajemo 1. Dvostruka vrijednost je sada između 1.0 i 11.0, još uvijek manja od 11.0.
- Konačno, izvodimo uvođenje tipova da pretvorimo double u cijeli broj. Ovo skraćuje decimalni dio i dobivamo cijeli broj između 1 i 10.
Biblioteke i funkcije vezane za generiranje slučajnih brojeva
Pored Math.random(), Java nudi i druge načine za generisanje slučajnih brojeva kao što su klasa Random i klasa ThreadLocalRandom. Klasa Random obezbeđuje metode za generisanje pseudoslučajnih brojeva različitih tipova, kao što su int, double, long, float, Boolean, itd. Klasa ThreadLocalRandom obezbeđuje metode za generisanje pseudoslučajnih brojeva u istovremenim scenarijima.
Ugrađene funkcije i klase Jave nude sveobuhvatna rješenja za generiranje slučajnih brojeva, zadovoljavajući različite potrebe i aplikacije.