Как вывести случайное число в javascript
Перейти к содержимому

Как вывести случайное число в javascript

  • автор:

Метод Math.random

Метод Math.random возвращает случайное дробное число от 0 до 1 .

Синтаксис

Math.random();

Применение

Чтобы получить случайное число в определенном промежутке (дробное или целое) следует пользоваться специальными приемами. Получение случайного дробного числа между min и max происходит так:

function getRandomArbitary(min, max) < return Math.random() * (max - min) + min; >

А теперь получим случайное целое число между min и max :

function getRandomInt(min, max) < return Math.floor(Math.random() * (max - min + 1)) + min; >

Пример

Давайте выведем случайное число от 0 до 1 :

console.log(Math.random());

Результат выполнения кода:

0.5416665468657356

Пример

Давайте выведем случайное целое число от 10 до 100 :

function getRandomInt(min, max) < return Math.floor(Math.random() * (max - min + 1)) + min; >console.log(getRandomInt(10, 100));

Результат выполнения кода:

Как вывести случайное число в javascript

Напишите функцию randomInteger(min, max) , которая генерирует случайное целое (integer) число от min до max (включительно).

Любое число из интервала min..max должно появляться с одинаковой вероятностью.

Пример работы функции:

alert( randomInteger(1, 5) ); // 1 alert( randomInteger(1, 5) ); // 3 alert( randomInteger(1, 5) ); // 5

Можно использовать решение из предыдущей задачи.

Простое, но неправильное решение

Простое, но неправильное решение

Самое простое, но неправильное решение – генерировать случайное число от min до max и округлять его:

function randomInteger(min, max) < let rand = min + Math.random() * (max - min); return Math.round(rand); >alert( randomInteger(1, 3) );

Функция будет работать, но неправильно. Вероятность получить min и max значения в 2 раза меньше, чем любое другое число.

Если вы запустите приведённый выше пример, то заметите, что 2 появляется чаще всего.

Это происходит потому, что метод Math.round() получает случайные числа из интервала 1..3 и округляет их следующим образом:

число от 1 . до 1.4999999999 округлится до 1 число от 1.5 . до 2.4999999999 округлится до 2 число от 2.5 . до 2.9999999999 округлится до 3

Теперь становится понятно, что 1 получает в 2 раза меньше значений, чем 2 . То же самое с 3 .

Правильное решение задачи

Правильное решение задачи

Есть много правильных решений этой задачи. Одно из них – использовать Math.floor для получения случайного числа от min до max+1 :

function randomInteger(min, max) < // случайное число от min до (max+1) let rand = min + Math.random() * (max + 1 - min); return Math.floor(rand); >alert( randomInteger(1, 3) );

Теперь все интервалы отображаются следующим образом:

число от 1 . до 1.9999999999 округлится до 1 число от 2 . до 2.9999999999 округлится до 2 число от 3 . до 3.9999999999 округлится до 3

Все интервалы имеют одинаковую длину, что выравнивает вероятность получения случайных чисел.

Math.random()

Статический метод Math.random() возвращает псевдослучайное число с плавающей запятой, которое больше или равно нулю и меньше единицы с приблизительно равномерным распределением в этом диапазоне. В дальнейшем это число можно «отмасштабировать», привести к нужному диапазону. Выбор начального числа для алгоритма генерации случайных чисел происходит автоматически (зависит от реализации) и не может быть изменён пользователем.

Примечание: метод Math.random() не предоставляет криптографически стойкие случайные числа. Не используйте его ни для чего, связанного с безопасностью. Для таких целей используйте Web Crypto API и более точный метод window.crypto.getRandomValues() .

Интерактивный пример

Синтаксис

.random() 

Параметры

Возвращаемое значение

Псевдослучайное число с плавающей запятой от 0 (включительно) до 1 (не включая).

Примеры

Обратите внимание, что поскольку числа в JavaScript являются числами с плавающей запятой стандарта IEEE 754 с округлением к ближайшему чётному, используемые в приведённых функциях диапазоны (исключая диапазон с простым вызовом Math.random() ), не точны. Если заданы очень большие границы (2 53 или выше), возможен крайне редкий случай достижения обычно исключённой верхней границы.

Получение случайного числа от 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); // Максимум и минимум включаются > 

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

Specification
ECMAScript Language Specification
# sec-math.random

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

BCD tables only load in the browser

Смотрите также

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 11 дек. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

Как вывести случайное число в javascript

Метод Math.random() — это метод объекта Math в JavaScript, который генерирует случайное число в диапазоне от 0 до 1. Это полезный метод, который может использоваться для создания случайных чисел в программировании.

Формы записи

Запись метода Math.random() следующая:

Math.random(); // Возвращает случайное число от 0 до 1

Описание работы

Метод Math.random() использует генератор псевдослучайных чисел, который создает числа, которые выглядят случайными, но на самом деле являются результатом вычислений. Генератор псевдослучайных чисел используется для создания случайных чисел в компьютерных программах, и он базируется на некоторых начальных параметрах, таких как время и дата.

Метод Math.random() генерирует случайное число в диапазоне от 0 до 1. Он возвращает дробное значение, которое может быть любым числом от 0 (включительно) до 1 (не включительно). Если вы хотите получить случайное число в другом диапазоне, вы можете использовать следующую формулу:

Math.floor(Math.random() * (max - min + 1)) + min;

где max и min — это максимальное и минимальное значения диапазона соответственно.

Примеры

Пример 1: генерация случайного числа в диапазоне от 0 до 1

const randomNum = Math.random(); console.log(randomNum); // Возвращает случайное число от 0 до 1

Пример 2: генерация случайного числа в диапазоне от 1 до 10

const min = 1; const max = 10; const randomNum = Math.floor(Math.random() * (max - min + 1)) + min; console.log(randomNum); // Возвращает случайное число от 1 до 10

Пример 3: генерация случайного цвета в формате HEX

function getRandomColor() < const letters = '0123456789ABCDEF'; let color = '#'; for (let i = 0; i < 6; i++) < color += letters[Math.floor(Math.random() * 16)]; >return color; > console.log(getRandomColor()); // Возвращает случайный цвет в формате HEX

Заключение

Метод Math.random() — это полезный метод объекта Math в JavaScript, который генерирует случайное число в диапазоне от 0 до 1. Этот метод может использоваться для создания случайных чисел, цветов и других элементов в программировании.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *