Metoda aleatorie

JavaScript Math.random() metoda este o metodă excelentă încorporată pentru a produce numere aleatorii. Cand Math.random() este executat, returnează un număr aleatoriu care poate fi între 0 și 1. 0 este inclus și 1 este exclus.

Generarea unui număr aleatoriu în virgulă mobilă între 0 și 1

Math.random() metoda va returna un număr în virgulă mobilă (zecimal) mai mare sau egal cu 0 și mai mic decât (dar niciodată egal cu) 1. Cu alte cuvinte 0 <= x < 1. De exemplu:

console.log(Math.random());
// 0.7069207248635578

console.log(Math.random());
// 0.765046694794209

console.log(Math.random());
// 0.14069121642698246

(Desigur, numerele returnate vor fi diferite de fiecare dată. Acest lucru va fi presupus pentru toate exemplele următoare – rezultate diferite se vor întâmpla la fiecare trecere.)

Pentru a obține un număr aleatoriu între un interval mai mare, înmulțiți rezultatul Math.random() cu un număr.

Generarea unui număr aleatoriu în virgulă mobilă între 0 și un maxim specificat

De obicei nu aveți nevoie de numere aleatoare între 0 și 1 – aveți nevoie de numere mai mari sau chiar de numere întregi.

ad-banner

De exemplu, dacă doriți un număr aleatoriu în virgulă mobilă între 0 și 10, puteți utiliza:

var x = Math.random()*10;

console.log(x);
// 4.133793901445541

Generarea unui număr aleatoriu în virgulă mobilă într-un interval

Dacă aveți nevoie de un număr aleatoriu în virgulă mobilă care variază între două numere specifice, puteți face așa ceva:

var min = 83.1;
var max = 193.36;

var x = Math.random()*(max - min)+min;

console.log(x);
// 126.94014012699063

Generarea unui număr întreg aleatoriu între 0 și max

Adesea ai nevoie de numere întregi. Pentru a face acest lucru, va trebui să utilizați alte metode din Math obiect, Math.floor() (se rotunjește până la cel mai apropiat număr întreg) și Math.ceil() (rotunjește până la cel mai apropiat număr întreg).

De exemplu, dacă trebuie să selectați aleatoriu dintr-o matrice de 10 elemente, veți avea nevoie de un număr aleatoriu între 0 și 9 inclusiv (amintiți-vă că matricile sunt zero indexate).

var x = Math.floor(Math.random()*10);

console.log(x);
// 7

(Sa nu uiti asta Math.random() nu va reveni niciodată exact 1, deci Math.random()*10 nu va reveni niciodată exact 10. Aceasta înseamnă că după rotunjire în jos, rezultatul va fi întotdeauna de 9 sau mai puțin.)

Generarea unui număr întreg aleatoriu între 1 și max

Dacă aveți nevoie de un număr aleator, numărul minim fiind 1 (de exemplu alegerea unei zile aleatorii în ianuarie), puteți utiliza Math.ceil() metodă.

var x = Math.ceil(Math.random()*31);

console.log(x);
// 23

O altă modalitate ar fi fost utilizarea funcției anterioare (folosind Math.floor()) și adăugați 1 la acesta:

var x = Math.floor(Math.random()*31)+1;

console.log(x);
// 17

Generarea unui număr întreg aleatoriu într-un interval

În cele din urmă, ocazional aveți nevoie de un număr întreg aleatoriu între două numere întregi specifice. De exemplu, dacă încercați să alegeți bilete la tombolă și cunoașteți numărul dintre cel mai mic și cel mai mare număr:

var min = 1718;
var max = 3429;

var x = Math.floor(Math.random()*(max-min+1)+min);

console.log(x);
//2509

Cât de aleatoriu este Math.random ()?

Se poate sublinia că numărul returnat de Math.random() este un număr pseudo-aleatoriu, deoarece niciun computer nu poate genera un număr cu adevărat aleatoriu, care prezintă aleatoriu pe toate scările și pe toate dimensiunile seturilor de date. Cu toate acestea, numărul pseudo-aleatoriu generat de Math.random() este de obicei suficient pentru nevoile aproape oricărui program pe care le puteți scrie. Aleatoritatea nu este cu adevărat evidentă decât în ​​seturi de numere astronomice mari sau când sunt necesare zecimale neobișnuit de precise.