From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../global_objects/math/random/index.html | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/math/random/index.html (limited to 'files/ru/web/javascript/reference/global_objects/math/random') diff --git a/files/ru/web/javascript/reference/global_objects/math/random/index.html b/files/ru/web/javascript/reference/global_objects/math/random/index.html new file mode 100644 index 0000000000..7b25fda4d1 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/math/random/index.html @@ -0,0 +1,110 @@ +--- +title: Math.random() +slug: Web/JavaScript/Reference/Global_Objects/Math/random +tags: + - JavaScript + - Math + - Method + - Reference + - Référence(2) +translation_of: Web/JavaScript/Reference/Global_Objects/Math/random +--- +
{{JSRef}}
+ +

Метод Math.random() возвращает псевдослучайное число с плавающей запятой из диапазона [0, 1), то есть, от 0 (включительно) до 1 (но не включая 1), которое затем можно отмасштабировать до нужного диапазона. Реализация сама выбирает начальное зерно для алгоритма генерации случайных чисел; оно не может быть выбрано или сброшено пользователем.

+ +

{{EmbedInteractiveExample("pages/js/math-random.html")}}

+ +
+

Примечание: метод Math.random() не предоставляет криптографически стойкие случайные числа. Не используйте его ни для чего, связанного с безопасностью. Вместо него используйте Web Crypto API (API криптографии в вебе) и более точный метод {{domxref("RandomSource.getRandomValues()", "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; //Максимум и минимум включаются
+}
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
{{SpecName('ES1')}}{{Spec2('ES1')}}Изначальное определение. JavaScript 1.0 (только UNIX) / JavaScript 1.1 (все платформы).
{{SpecName('ES5.1', '#sec-15.8.2.14', 'Math.random')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.random', 'Math.random')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.random', 'Math.random')}}{{Spec2('ESDraft')}}
+ +

Совместимость с браузерами

+ +

{{Compat("javascript.builtins.Math.random")}}

+ +
+ +
-- cgit v1.2.3-54-g00ecf