JavaScript Math.random () -menetelmä selitetty
Satunnainen menetelmä
JavaScript- Math.random()
menetelmä on erinomainen sisäänrakennettu menetelmä satunnaislukujen tuottamiseksi. Kun Math.random()
se suoritetaan, se palauttaa satunnaisluvun, joka voi olla missä tahansa välillä 0 ja 1. 0 sisältyy ja 1 jätetään pois.
Generoidaan satunnainen liukuluku välillä 0 ja 1
Math.random()
Menetelmä palauttaa liukuluku (desimaali) suurempi tai yhtä suuri kuin 0 ja pienempi kuin (mutta ei koskaan yhtä suuri) kuin 1. Toisin sanoen 0 <= x < 1
. Esimerkiksi:
console.log(Math.random()); // 0.7069207248635578 console.log(Math.random()); // 0.765046694794209 console.log(Math.random()); // 0.14069121642698246
(Palautetut luvut ovat tietysti erilaiset joka kerta. Tämä oletetaan kaikkien seuraavien esimerkkien kohdalla - jokaisella kierroksella tapahtuu erilaisia tuloksia.)
Saadaksesi satunnaisluvun suuremman alueen välillä, kerro tulos Math.random()
luvulla.
Generoidaan satunnainen liukuluku 0: n ja määritetyn maksimin välillä
Yleensä et tarvitse satunnaislukuja välillä 0 ja 1 - tarvitset suurempia lukuja tai jopa kokonaislukuja.
Esimerkiksi, jos haluat satunnaisen liukuluvun välillä 0-10, voit käyttää:
var x = Math.random()*10; console.log(x); // 4.133793901445541
Satunnaisen liukuluvun luominen alueelle
Jos tarvitset satunnaisen liukuluvun, joka vaihtelee kahden tietyn luvun välillä, voit tehdä jotain tällaista:
var min = 83.1; var max = 193.36; var x = Math.random()*(max - min)+min; console.log(x); // 126.94014012699063
Generoidaan satunnainen kokonaisluku välillä 0 ja enintään
Tarvitset usein kokonaislukuja. Tätä varten sinun on käytettävä joitain muita menetelmiä Math
objektista, Math.floor()
(pyöristää alaspäin lähimpään kokonaislukuun) ja Math.ceil()
(pyöristää ylöspäin lähimpään kokonaislukuun).
Jos esimerkiksi haluat valita satunnaisesti 10 elementin joukosta, tarvitset satunnaisluvun välillä 0–9 (muista, että taulukot on indeksoitu nollaan).
var x = Math.floor(Math.random()*10); console.log(x); // 7
(Muista, että Math.random()
se ei koskaan palaa tarkalleen 1, joten Math.random()*10
ei koskaan palaa tarkalleen 10. Tämä tarkoittaa, että pyöristämisen jälkeen tulos on aina 9 tai vähemmän.)
Generoidaan satunnainen kokonaisluku välillä 1 ja enintään
Jos tarvitset satunnaisluvun, jonka vähimmäismäärä on 1 (esimerkiksi satunnaisen päivän valitseminen tammikuussa), voit käyttää Math.ceil()
menetelmää.
var x = Math.ceil(Math.random()*31); console.log(x); // 23
Toinen tapa olisi ollut käyttää edellistä toimintoa (käyttäen Math.floor()
) ja lisätä siihen 1:
var x = Math.floor(Math.random()*31)+1; console.log(x); // 17
Satunnaisen kokonaisluvun luominen alueelle
Lopuksi, joskus tarvitset satunnaisen kokonaisluvun kahden tietyn kokonaisluvun väliin. Esimerkiksi, jos yrität valita arvontalippuja ja tiedät pienimmän ja suurimman numeron numerot:
var min = 1718; var max = 3429; var x = Math.floor(Math.random()*(max-min+1)+min); console.log(x); //2509
Kuinka satunnainen on Math.random ()?
Voidaan huomauttaa, että palauttama luku Math.random()
on näennäissatunnaisluku, koska mikään tietokone ei pysty tuottamaan todella satunnaislukua, jolla on satunnaisuutta kaikissa asteikoissa ja kaikenkokoisissa tietojoukoissa. Luotu näennäissatunnaisluku Math.random()
on kuitenkin yleensä riittävä lähes minkä tahansa kirjoittamasi ohjelman tarpeisiin. Epätodellinen satunnaisuus tulee esiin vain tähtitieteellisesti suurissa numerosarjoissa tai silloin, kun tarvitaan harvoin tarkkoja desimaaleja.