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ä Mathobjektista, 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()*10ei 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.