25

Генерация случайного числа в диапазоне между двумя числами в JavaScript

37

Есть ли способ сгенерировать случайное число в указанном диапазоне с помощью JavaScript?

Например: необходимо получить случайное число в диапазоне от 1 до 6, где результатом может быть любое из значений: 1, 2, 3, 4, 5 или 6.

5 ответ(ов)

34

Функция randomIntFromInterval(min, max) генерирует случайное целое число в заданном интервале, включая границы. Она принимает два параметра: min и max, которые определяют нижнюю и верхнюю границы интервала соответственно.

Вот как это работает:

function randomIntFromInterval(min, max) { // min и max включены
  return Math.floor(Math.random() * (max - min + 1) + min);
}

// Пример использования:
const rndInt = randomIntFromInterval(1, 6);
console.log(rndInt);

В данном коде используется Math.random() для генерации случайного числа, которое затем масштабируется на диапазон от min до max и округляется вниз с помощью Math.floor().

Дополнительная особенность этой функции заключается в том, что она позволяет создавать случайные числа в любом заданном интервале, не ограничиваясь только числами, начинающимися с 1. Например, вы можете вызвать randomIntFromInterval(10, 15) и получить случайное число от 10 до 15. Эта гибкость делает функцию удобной для различных задач, где требуется случайный выбор из определённого диапазона.

25

Важно

Следующий код работает только при минимальном значении, равном 1. Он не работает для минимальных значений, отличных от 1.

Если вы хотите получить случайное целое число между 1 (и только 1) и 6, вам нужно произвести расчёт следующим образом:

const rndInt = Math.floor(Math.random() * 6) + 1;
console.log(rndInt);

Где:

  • 1 — это начальное число
  • 6 — это количество возможных результатов (1 + начальное значение (6) - конечное значение (1))
0

Этот код на JavaScript генерирует случайное целое число от 1 до x, где x — любое число.

Вот как это работает:

  1. Math.random() возвращает случайное число с плавающей запятой в диапазоне от 0 (включительно) до 1 (не включительно).
  2. Умножив это значение на x, мы получаем случайное число в диапазоне от 0 до x (не включая x).
  3. Функция Math.floor() округляет это число вниз до ближайшего целого, что дает нам значение от 0 до x-1.
  4. Добавив 1, мы сдвигаем диапазон так, чтобы получить значения от 1 до x.

Таким образом, в результате rand будет равен случайному целому числу в диапазоне от 1 до x (включительно).

0

Чтобы получить случайное целое число между min и max, вы можете использовать следующий код:

function getRandomInteger(min, max) {
  min = Math.ceil(min); // Округляем до ближайшего большего
  max = Math.floor(max); // Округляем до ближайшего меньшего
  return Math.floor(Math.random() * (max - min)) + min; // Генерируем случайное целое число
}

Для получения случайного числа с плавающей запятой между min и max, используйте следующий код:

function getRandomFloat(min, max) {
  return Math.random() * (max - min) + min; // Генерируем случайное число с плавающей запятой
}

С дополнительной информацией вы можете ознакомиться в документации MDN: Math.random().

0

Чтобы получить случайное целое число в диапазоне от 0 до 400, можно использовать следующий код:

let rand = Math.round(Math.random() * 400);
document.write(rand);

Для генерации случайного целого числа в диапазоне от 200 до 1500, вам нужно немного изменить подход. Вот пример кода:

let range = {min: 200, max: 1500};
let delta = range.max - range.min;

const rand = Math.round(range.min + Math.random() * delta);
document.write(rand);

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

function randBetween(min, max) {
  let delta = max - min;
  return Math.round(min + Math.random() * delta);
}

document.write(randBetween(10, 15));

Если вы предпочитаете использовать стрелочные функции в ES6, вот аналогичная реализация:

const randBetween = (min, max) => {
  let delta = max - min;
  return Math.round(min + Math.random() * delta);
}

document.write(randBetween(10, 20));

Таким образом, используя данную функцию, вы сможете легко получать случайные целые числа в любых заданных диапазонах.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь