Samotné generovanie náhodných čísel má dobrú úžitkovú hodnotu a dosiahnuť ich pomocou funkcie sa môže ukázať ako veľmi užitočné. Java vo svojom jazyku zasvätila celú knižnicu náhodným číslam, pričom videla ich dôležitosť v dennom programovaní. nextInt() je diskutované v tomto článku.
- java.util.Random.nextInt() : The nextInt() sa používa na získanie ďalšej hodnoty náhodného celého čísla zo sekvencie tohto generátora náhodných čísel.
Declaration : public int nextInt() Parameters : NA Return Value : The method call returns the next integer number from the sequence Exception : NA>
Nasledujúci príklad ukazuje použitie java.util.Random.nextInt()
dlhý na reťazec java
// Java code to demonstrate the working> // of nextInt()> import> java.util.*;> public> class> NextInt1 {> >public> static> void> main(String[] args)> >{> > >// create random object> >Random ran =>new> Random();> > >// generating integer> >int> nxt = ran.nextInt();> > >// Printing the random Number> >System.out.println> >(>'The Randomly generated integer is : '> + nxt);> >}> }> |
>
>
Výkon:
The Randomly generated integer is : -2052834321>java.util.Random.nextInt(int n) : The nextInt(int n) sa používa na získanie náhodného čísla medzi 0 (vrátane) a číslom odovzdaným v tomto argumente (n), s výnimkou.
Declaration : public int nextInt(int n) Parameters : n : This is the bound on the random number to be returned. Must be positive. Return Value : Returns a random number. between 0 (inclusive) and n (exclusive). Exception : IllegalArgumentException : This is thrown if n is not positive.>
Nasledujúci príklad ukazuje použitie java.util.Random.nextInt(int n)
java typeof premennej
// Java code to demonstrate the working> // of nextInt(n)> import> java.util.*;> public> class> NextInt2 {> >public> static> void> main(String args[])> >{> > >// create random object> >Random ran =>new> Random();> > >// Print next int value> >// Returns number between 0-9> >int> nxt = ran.nextInt(>10>);> > >// Printing the random number> >// between 0 and 9> >System.out.println> >(>'Random number between 0 and 10 is : '> + nxt);> >}> }> |
>
>
Výkon:
Random number between 0 and 9 is : 4>
IllegalArgumentException : K tomu dochádza, keď odovzdaný argument nie je kladný.
Príklad na ilustráciu výnimky vygenerovanej, keď n nie je kladné číslo:
linkedlist a arraylist
// Java code to demonstrate the Exception> // of nextInt(n)> import> java.util.*;> public> class> NextInt2 {> >public> static> void> main(String[] args)> >{> > >// create random object> >Random ran =>new> Random();> > >// generating number between 0 and -12345> >// Raises Runtime error, as n is negative.> >int> nxt = ran.nextInt(->12345>);> > >System.out.println> >(>'Generated Random number is : '> + nxt);> >}> }> |
>
>
Chyby spustenia:
Exception in thread 'main' java.lang.IllegalArgumentException: bound must be positive at java.util.Random.nextInt(Random.java:388) at NextInt2.main(NextInt2.java:14)>
Praktické aplikácie
modem vs router
Generovanie náhodných čísel má množstvo aplikácií, napr je to lotéria, hazardné hry alebo hry v malom rozsahu . Nižšie je demonštrovaná malá hra s kockami, v ktorej 2 hráči hodia kocku so 6 bodmi, pričom vyhráva osoba, ktorá ako prvá získa 30 bodov.
// Java code to demonstrate the Application> // of nextInt(n)> import> java.util.*;> public> class> NextIntAppli {> >public> static> void> main(String[] args)> >{> > >int> sum =>0>, sum1 =>0>, count =>0>, count1 =>0>;> >int> turn =>0>;> > >// creating random object> >Random ran =>new> Random();> >int> flag =>0>;> > >while> (>true>) {> >if> (turn %>2> ==>0>) {> > >int> p1 = ran.nextInt(>6>);> >sum += p1;> >System.out.printf> >(>'Player 1 after turn %d is : %d
'>, turn, sum);> >}> >else> {> > >int> p2 = ran.nextInt(>6>);> >sum1 += p2;> >System.out.printf> >(>'Player 2 after turn %d is : %d
'>, turn, sum1);> >}> >if> (sum>=>30>) {> >flag =>1>;> >break>;> >}> >if> (sum1>=>30>) {> >flag =>2>;> >break>;> >}> >turn++;> >}> >if> (flag ==>1>)> >System.out.println(>'
Player 1 WON!!'>);> >else> >System.out.println(>'
Player 2 WON!!'>);> >}> }> |
>
>
Výkon:
Player 1 after turn 0 is : 0 Player 2 after turn 1 is : 4 Player 1 after turn 2 is : 2 Player 2 after turn 3 is : 9 Player 1 after turn 4 is : 5 Player 2 after turn 5 is : 9 Player 1 after turn 6 is : 6 Player 2 after turn 7 is : 14 Player 1 after turn 8 is : 8 Player 2 after turn 9 is : 18 Player 1 after turn 10 is : 12 Player 2 after turn 11 is : 21 Player 1 after turn 12 is : 13 Player 2 after turn 13 is : 26 Player 1 after turn 14 is : 18 Player 2 after turn 15 is : 29 Player 1 after turn 16 is : 18 Player 2 after turn 17 is : 34 Player 2 WON!!>