Satunnaislukujen luominen Java: lla

Luodaan sarja satunnaislukuja on yksi niistä yleisistä tehtävistä, jotka kasvavat ajoittain. Sisään Jaava, se voidaan saavuttaa yksinkertaisesti käyttämällä java.util. Satunnainen luokka.

Ensimmäinen vaihe, kuten minkä tahansa sovellusliittymän käytössä luokka, on laittaa tuontilausunto ennen ohjelmaluokan alkua:

Luo seuraavaksi Satunnainen objekti:

Random-objekti tarjoaa sinulle yksinkertaisen satunnaislukugeneraattorin. Kohteen menetelmät antavat kyvyn valita satunnaislukuja. Esimerkiksi nextInt () ja nextLong () -menetelmät palauttavat luvun, joka on int- ja pitkien tietotyyppien arvoalueilla (negatiivinen ja positiivinen):

Palautetut numerot valitaan satunnaisesti int ja pitkät arvot:

Satunnaislukujen valitseminen tietyltä alueelta

Normaalisti generoitavien satunnaislukujen on oltava tietyltä alueelta (esim. Välillä 1 - 40). Tätä tarkoitusta varten NextInt () -menetelmä voi myös hyväksyä int-parametrin. Se tarkoittaa numeroalueen ylärajaa. Ylärajan numeroa ei kuitenkaan sisällytetä yhdeksi numeroista, jotka voidaan valita. Se saattaa kuulostaa hämmentävältä, mutta nextInt () -menetelmä toimii nollasta ylöspäin. Esimerkiksi:

instagram viewer

valitsee vain satunnaisluvun välillä 0-39. Jos haluat valita alueelta, joka alkaa yhdellä, lisää vain 1 nextInt () -menetelmän tulokseen. Jos haluat esimerkiksi valita numeron välillä 1 - 40, lisää yksi tulokseen:

Jos alue alkaa suuremmasta määrästä kuin yksi, sinun on toimittava seuraavasti:

  • miinus aloitusnumero ylärajan numerosta ja lisää sitten yksi.
  • lisää aloitusnumero nextInt () -menetelmän tulokseen.

Esimerkiksi, jos haluat valita numeron 5-35, ylärajan numero on 35-5 + 1 = 31 ja tulokseen on lisättävä 5:

Kuinka satunnainen on satunnainen luokka?

Minun on korostettava, että Random-luokka tuottaa satunnaislukuja deterministisella tavalla. Satunnaisuutta tuottava algoritmi perustuu numeroon, jota kutsutaan siemeneksi. Jos siemennumero on tiedossa, on mahdollista selvittää numerot, jotka aiotaan tuottaa algoritmista. Tämän todistamiseksi käytän numeroita siitä päivästä lukien Neil Armstrong ensimmäisen kerran astuivat Kuulle siemennumeroni (20. heinäkuuta 1969):

Riippumatta siitä, kuka suorittaa tämän koodin, tuotettujen "satunnaislukujen" sarja on

Oletuksena siemennumero, jota käyttävät:

on nykyinen aika millisekuntina 1. tammikuuta 1970 lähtien. Normaalisti tämä tuottaa riittävän satunnaislukuja useimpiin tarkoituksiin. Huomaa kuitenkin, että kaksi satunnaislukugeneraattoria, jotka on luotu samassa millisekunnissa, tuottaa samat satunnaislukut.

Ole myös varovainen, kun käytät Random-luokkaa sovelluksissa, joissa on oltava turvallinen satunnaislukugeneraattori (esim. Uhkapeliohjelma). Siemennumero voi olla mahdollista arvata sovelluksen käynnistysajan perusteella. Yleensä sovelluksissa, joissa satunnaisluvut ovat ehdottoman kriittisiä, on parasta löytää vaihtoehto satunnaisobjektille. Useimmissa sovelluksissa, joissa on vain oltava tietty satunnainen elementti (esim. Noppaa lautapelissä), se toimii sitten hyvin.

instagram story viewer