Računanje nasumičnih brojeva može biti temeljni dio mnogih aplikacija, posebno u razvoju igara, statističkom modeliranju i simulacijama. Programski jezik Java nudi ugrađenu funkciju za generiranje takvih nasumičnih brojeva. Jedna funkcija je Math.random(), iako generira 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 1 do 10, potrebni su dodatni koraci. Ovaj članak bavi se stvaranjem nasumičnih brojeva između 1 i 10 u Javi pomoću Math.random().
Generiranje nasumičnih brojeva s Math.random()
Javina funkcija Math.random() vraća pozitivnu dvostruku vrijednost koja je veća ili jednaka 0.0 i manja od 1.0. Te se vrijednosti 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 izravno 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
Za simulaciju stvaranja nasumičnog cijelog broja između 1 i 10, pomnožit ćemo rezultat Math.random() s 10, dodati 1, a zatim pretvoriti rezultat u cijeli broj (jer Math.random() vraća double) . Prebacivanje na cijeli broj skraćuje decimalni dio, čime dobivamo cjelobrojnu vrijednost.
int randomInteger = (int)(Math.random() * 10 + 1);
Ovaj kôd funkcionira jer Math.random() daje vrijednost od 0.0 do malo ispod 1.0. Kada to pomnožite s 10, to proteže raspon od 0.0 do malo ispod 10.0. Dodavanje 1 pomiče ovaj raspon od 1.0 do malo ispod 11.0.
Raščlamba korak po korak
Zaronimo dublje u to kako kôd funkcionira:
1.
- Poziva se funkcija Math.random() koja vraća pseudoslučajni dvostruki broj veći ili jednak 0.0 i manji od 1.0.
- Ova dvostruka vrijednost se zatim množi s 10. Sada dvostruka vrijednost pada između 0.0 i 10.0, još uvijek manje od 10.0
- Rezultatu dodajemo 1. Dvostruka vrijednost sada je između 1.0 i 11.0, još uvijek manja od 11.0.
- Naposljetku, izvodimo pretvaranje tipa kako bismo pretvorili double u cijeli broj. Ovo skraćuje decimalni dio i dobivamo cijeli broj između 1 i 10.
Knjižnice i funkcije povezane s generiranjem slučajnih brojeva
Uz Math.random(), Java nudi druge načine za generiranje nasumičnih brojeva kao što su klasa Random i klasa ThreadLocalRandom. Klasa Random pruža metode za generiranje pseudoslučajnih brojeva različitih vrsta, kao što su int, double, long, float, Boolean, itd. Klasa ThreadLocalRandom pruža metode za generiranje pseudoslučajnih brojeva u istodobnim scenarijima.
Ugrađene funkcije i klase Jave nude sveobuhvatna rješenja za generiranje nasumičnih brojeva, zadovoljavajući različite potrebe i aplikacije.