JavaScript Math.random () Metode forklaret

Tilfældig metode

JavaScript- Math.random()metoden er en fremragende indbygget metode til at producere tilfældige tal. Når Math.random()det udføres, returnerer det et tilfældigt tal, der kan være hvor som helst mellem 0 og 1. 0 er inkluderet og 1 er ekskluderet.

Genererer et tilfældigt flydende nummer mellem 0 og 1

Den Math.random()metode vil returnere en floating point (decimal) tal større end eller lig med 0 og mindre end (men aldrig lig med) 1. Med andre ord 0 <= x < 1. For eksempel:

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

(Naturligvis vil de returnerede numre være forskellige hver gang. Dette antages i alle følgende eksempler - forskellige resultater vil ske ved hvert pas.)

For at få et tilfældigt tal mellem et større område skal du gange resultatet Math.random()med et tal.

Genererer et tilfældigt flydende nummer mellem 0 og et specificeret maks

Normalt behøver du ikke tilfældige tal mellem 0 og 1 - du har brug for større tal eller endda heltal.

Hvis du f.eks. Vil have et tilfældigt flydende nummer mellem 0 og 10, kan du bruge:

var x = Math.random()*10; console.log(x); // 4.133793901445541

Genererer et tilfældigt flydende nummer inden for et interval

Hvis du har brug for et tilfældigt flydende nummer, der varierer mellem to specifikke tal, kan du gøre noget som dette:

var min = 83.1; var max = 193.36; var x = Math.random()*(max - min)+min; console.log(x); // 126.94014012699063

Genererer et tilfældigt heltal mellem 0 og maks

Ofte har du brug for heltal. For at gøre dette bliver du nødt til at bruge nogle andre metoder fra Mathobjektet Math.floor()(runder ned til nærmeste heltal) og Math.ceil()(afrunder op til nærmeste heltal).

For eksempel, hvis du har brug for at vælge tilfældigt fra en matrix med 10 elementer, skal du bruge et tilfældigt tal mellem 0 og 9 inklusive (husk at arrays er nulindekseret).

var x = Math.floor(Math.random()*10); console.log(x); // 7

(Husk, at Math.random()vil aldrig vende tilbage nøjagtigt 1, så Math.random()*10vil aldrig vende tilbage nøjagtigt 10. Dette betyder, at resultatet efter afrunding altid vil være 9 eller mindre.)

Genererer et tilfældigt heltal mellem 1 og et maks

Hvis du har brug for et tilfældigt tal, hvor minimumstallet er 1 (for eksempel at vælge en tilfældig dag i januar), kan du bruge Math.ceil()metoden.

var x = Math.ceil(Math.random()*31); console.log(x); // 23

En anden måde ville have været at bruge den forrige funktion (ved hjælp af Math.floor()) og tilføje 1 til den:

var x = Math.floor(Math.random()*31)+1; console.log(x); // 17

Generere et tilfældigt heltal inden for et interval

Endelig har du lejlighedsvis brug for et tilfældigt heltal mellem to specifikke heltal. For eksempel, hvis du forsøger at vælge lodtrækningskort, og du kender numrene på det laveste og største antal:

var min = 1718; var max = 3429; var x = Math.floor(Math.random()*(max-min+1)+min); console.log(x); //2509

Hvor tilfældig er Math.random ()?

Det kan påpeges, at antallet, der returneres med, Math.random()er et pseudotilfældigt tal, da ingen computer kan generere et virkelig tilfældigt tal, der udviser tilfældighed over alle skalaer og over alle størrelser af datasæt. Det pseudo-tilfældige tal, der genereres af, Math.random()er dog normalt tilstrækkeligt til behovene i næsten ethvert program, du måtte skrive. Den ikke-tilfældige tilfældighed bliver kun tydelig i astronomisk store antal sæt, eller når der er brug for usædvanligt nøjagtige decimaler.