Обяснен метод на JavaScript Math.random ()

Случайен метод

JavaScript Math.random()методът е отличен вграден метод за генериране на произволни числа. Когато Math.random()се изпълни, той връща произволно число, което може да бъде между 0 и 1. 0 е включено и 1 е изключено.

Генериране на произволно число с плаваща запетая между 0 и 1

В Math.random()метода ще се върне с плаваща точка (десетични) число, по-голямо или равно на 0 и по-малко от (но никога не е равен на) 1. С други думи 0 <= x < 1. Например:

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

(Разбира се, върнатите числа ще бъдат различни всеки път. Това ще се приеме за всички следващи примери - при всеки проход ще се получат различни резултати.)

За да получите произволно число между по-голям диапазон, умножете резултата Math.random()от по число.

Генериране на произволно число с плаваща запетая между 0 и зададен макс

Обикновено не се нуждаете от случайни числа между 0 и 1 - имате нужда от по-големи числа или дори цели числа.

Например, ако искате произволно число с плаваща запетая между 0 и 10, можете да използвате:

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

Генериране на произволно число с плаваща запетая в диапазон

Ако имате нужда от произволно число с плаваща запетая, което варира между две конкретни числа, можете да направите нещо подобно:

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

Генериране на произволно цяло число между 0 и макс

Често се нуждаете от цели числа. За да направите това, ще трябва да използвате някои други методи от Mathобекта, Math.floor()(закръглява се до най-близкото цяло число) и Math.ceil()(закръглява до най-близкото цяло число).

Например, ако трябва да изберете произволно от масив от 10 елемента, ще ви е необходимо произволно число между 0 и 9 включително (не забравяйте, че масивите са нулево индексирани).

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

(Не забравяйте, че Math.random()никога няма да върне точно 1, така че Math.random()*10никога няма да върне точно 10. Това означава, че след закръгляването надолу резултатът винаги ще бъде 9 или по-малко.)

Генериране на произволно цяло число между 1 и макс

Ако имате нужда от произволно число с минимално число 1 (например избор на случаен ден през януари), можете да използвате Math.ceil()метода.

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

Друг начин би бил използването на предишната функция (използване Math.floor()) и добавяне на 1 към нея:

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

Генериране на произволно цяло число в диапазон

И накрая, понякога се нуждаете от произволно цяло число между две конкретни цели числа. Например, ако се опитвате да изберете билети за томбола и знаете номерата на най-малкия и най-големия брой:

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

Колко случаен е Math.random ()?

Може да се посочи, че номерът, върнат от, Math.random()е псевдослучайно число, тъй като никой компютър не може да генерира наистина произволно число, което показва произволност във всички мащаби и във всички размери набори от данни. Въпреки това, генерираното от псевдослучайно число Math.random()обикновено е достатъчно за нуждите на почти всяка програма, която можете да напишете. Неистинската случайност става очевидна само при астрономически голям брой набори или когато са необходими необичайно точни десетични знаци.