logo

Java.util.Random.nextInt() v jazyku Java

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>
Výnimka

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!!>