Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

Функція Math.random() повертає псевдо-випадкове число із рухомою комою з проміжку 0–1 (включно із 0, але не включаючи 1) із приблизно рівномірним розподілом значень на ньому (в подальшому його можна масштабувати до потрібних розмірів). Вихідне зерно-параметр для алгоритму генерації випадкового числа обирається реалізацією; воно не може бути обраним чи перевизначеним користувачем.

Math.random() не надає криптографічно стійких випадкових чисел. Не слід застосовувати їх будь-де у місцях, пов'язаних із інформаційною безпекою. Натомість використовуйте Web Crypto API, а точніше - метод window.crypto.getRandomValues().

Синтаксис

Math.random()

Результат

Псевдовипадкове число із рухомою комою між 0 (включно) та 1 (виключно).

Приклади

Зауважте, що числа у JavaScript являються стандартизованими згідно IEEE 754 числами із рухомою комою із поведінкою "округлення до найближчого парного". Тому проміжки, що охоплюються наступними фукнціями (за винятком власне Math.random()) не зовсім точні. За умови дуже великих обраних меж (253 чи більших) можливо у дуже рідкісних випадках отримати значення верхньої межі, яке зазвичай виключається.

Отримання випадкового числа з-поміж 0 (включно) та 1 (виключно)

function getRandom() {
  return Math.random();
}

Отримання випадкового числа з-поміж двох значень

Наступний приклад повертає випадкове число між двома вказаними значеннями. Результат не менший від (інколи дорівнює) min, і менший за (але не дорівнює) max.

function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

Отримання випадкового цілого з-поміж двох значень

Наступний приклад повертає випадкове ціле число між двома заданими значеннями. Результат не менший від min (або ж від наступного цілого, більшого за min, якщо min не являється цілим), і менший за (але не дорівнює) max.

function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min; //Включно з мінімальним та виключаючи максимальне значення 

}

Застосування Math.round() для отримання цілих може виглядати доволі привабливо, проте це призведе до спотворення рівномірного розподілу ймовірності результатів, що може бути неприйнятним для ваших потреб.

Отримання випадкового цілого з-поміж двох значень, включно

В той час, коли фукнція getRandomInt() включає до спектру результатів мінімум, вона виключає звідти максимум. Що, якщо вам знадобиться включити до можливих результатів як мінімум, так і максимум? Наступна фукнція getRandomIntInclusive() дозволяє цього досягти:

function getRandomIntInclusive(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min; //Включаючи мінімум та максимум 
}

Специфікації

Специфікація Статус документу Примітка
ECMAScript 1st Edition (ECMA-262) Standard Первинне визначення. JavaScript 1.0 (UNIX Only) / JavaScript 1.1 (All platforms).
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.random' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.random' in that specification.
Draft  

Сумісність із браузерами

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes

 

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,