Пояснення методу 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

Іншим способом був би використання попередньої функції (using 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()зазвичай достатньо для потреб майже будь-якої програми, яку ви можете написати. Неправдива випадковість стає очевидною лише в астрономічно великих наборах чисел або коли потрібні незвично точні десяткові знаки.