Generovanie náhodných čísel v Jave

Vytvára sa séria náhodné čísla je jednou z tých bežných úloh, ktoré sa občas objavujú. v Jáva, dá sa to dosiahnuť jednoducho pomocou java.util. Náhodná trieda.

Prvý krok, rovnako ako pri použití akéhokoľvek rozhrania API trieda, má umiestniť príkaz na import pred začiatkom triedy programu:

Potom vytvorte náhodný objekt:

Náhodný objekt vám poskytuje jednoduchý generátor náhodných čísel. Metódy objektu umožňujú výber náhodných čísel. Napríklad metódy nextInt () a nextLong () vrátia číslo, ktoré je v rozsahu hodnôt (negatívnych a pozitívnych) typov údajov int a long:

Vrátené čísla budú náhodne vybrané int a dlhé hodnoty:

Zbieranie náhodných čísel z určitého rozsahu

Normálne náhodné čísla, ktoré sa majú vygenerovať, musia byť z určitého rozsahu (napr. Od 1 do 40 vrátane). Na tento účel môže metóda nextInt () akceptovať aj parameter int. Označuje hornú hranicu rozsahu čísel. Horné medzné číslo však nie je zahrnuté ako jedno z čísel, ktoré je možné vybrať. Môže to znieť mätúce, ale metóda nextInt () funguje od nuly nahor. Napríklad:

instagram viewer

vyberie iba náhodné číslo od 0 do 39 vrátane. Ak chcete vybrať z rozsahu, ktorý začína 1, jednoducho pridajte 1 do výsledku metódy nextInt (). Napríklad, ak chcete vybrať číslo od 1 do 40 vrátane, pridajte jedno k výsledku:

Ak sa rozsah začína vyšším číslom, ako je jedna, budete musieť:

  • mínus počiatočné číslo od horného limitu a potom jedno.
  • pridajte počiatočné číslo do výsledku metódy nextInt ().

Napríklad, ak chcete vybrať číslo od 5 do 35 vrátane, horná medzná hodnota bude 35 - 5 + 1 = 31 a do výsledku sa musí pridať 5:

Aký náhodný je náhodný kurz?

Mal by som zdôrazniť, že trieda náhodných čísel generuje náhodne čísla deterministickým spôsobom. Algoritmus, ktorý vytvára náhodnosť, je založený na čísle nazývanom semeno. Ak je známe počiatočné číslo, je možné zistiť čísla, ktoré sa majú vygenerovať z algoritmu. Na dôkaz toho použijem čísla od tohto dátumu Neil Armstrong prvýkrát vstúpil na Mesiac ako moje číslo semena (20. júla 1969):

Bez ohľadu na to, kto spustí tento kód, bude sekvencia vytvorených „náhodných“ čísel:

V predvolenom nastavení je použité počiatočné číslo:

je aktuálny čas v milisekundách od 1. januára 1970. Zvyčajne sa tým vytvorí náhodné číslo pre väčšinu účelov. Všimnite si však, že dva generátory náhodných čísel vytvorené v tej istej milisekunde vygenerujú rovnaké náhodné čísla.

Pri používaní triedy Náhodné pre akúkoľvek aplikáciu, ktorá musí mať zabezpečený generátor náhodných čísel (napr. Program hazardných hier), buďte opatrní. Je možné uhádnuť počet semien na základe času, v ktorom je aplikácia spustená. Vo všeobecnosti je pre aplikácie, kde sú náhodné čísla absolútne kritické, najlepšie nájsť alternatívu k náhodnému objektu. Pre väčšinu aplikácií, kde musí existovať určitý náhodný prvok (napr. Kocky pre stolovú hru), potom to funguje dobre.