Обновлено:

Рандомно 2 числа

Чтобы сразу получить два случайных числа в JavaScript, используйте эту функцию:

function getTwoRandomInts(min, max) {
  return [
    Math.floor(Math.random() * (max - min + 1)) + min,
    Math.floor(Math.random() * (max - min + 1)) + min,
  ];
}
// Пример: два числа от 5 до 15
console.log(getTwoRandomInts(5, 15)); // Например, [7, 12]

Функция возвращает массив с двумя целыми числами в диапазоне от min до max, включительно. Это основано на стандартном методе Math.random() pokodem.ru.

Параметры генерации

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

Как работает генерация двух чисел?

Базовый механизм – функция Math.random(). Она возвращает псевдослучайное число от 0 (включительно) до 1 (не включая 1) ru.hexlet.io. Чтобы получить число в нужном диапазоне, применяется формула:

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

  • Math.floor() – округляет до ближайшего меньшего целого, чтобы получить целое число.
  • (max - min + 1) – определяет ширину диапазона.
  • Добавление min – смещает результат в нужный интервал.

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

Как получить два случайных целых числа?

Используйте готовую функцию getTwoRandomInts. Важные моменты:

  • Округление: Math.floor гарантирует целые числа. Если нужны дробные, используйте Math.random() * (max - min) + min без округления.
  • Включение границ: +1 в формуле обеспечивает, что максимальное значение max может быть выдано.
  • Совпадение чисел: В небольшом диапазоне два числа могут оказаться одинаковыми. Если это критично, добавьте проверку:
    function getTwoDifferentRandomInts(min, max) {
      let first = Math.floor(Math.random() * (max - min + 1)) + min;
      let second;
      do {
        second = Math.floor(Math.random() * (max - min + 1)) + min;
      } while (second === first);
      return [first, second];
    }
    

Практические примеры использования

Симуляция броска двух кубиков (D6):

const diceRolls = getTwoRandomInts(1, 6);
console.log(`Вы бросили: ${diceRolls[0]} и ${diceRolls[1]}`);
// Вывод: Вы бросили: 3 и 5

Случайный выбор двух уникальных элементов из массива:

const items = ['A', 'B', 'C', 'D', 'E'];
const indices = getTwoDifferentRandomInts(0, items.length - 1);
const selected = [items[indices[0]], items[indices[1]]];
console.log(selected); // Например, ['B', 'D']

Генерация двух случайных координат (например, для точки на плоскости):

const xRange = getTwoRandomInts(0, 100); // X координаты
const yRange = getTwoRandomInts(0, 100); // Y координаты
console.log(`Координаты: (${xRange[0]}, ${yRange[0]}) и (${xRange[1]}, ${yRange[1]})`);

Особенности и ограничения

  • Псевдослучайность: Math.random() не подходит для криптографии или систем безопасности. Для этих задач используйте crypto.getRandomValues() pokodem.ru.
  • Диапазон: Убедитесь, что min меньше max. Функция не проверяет это автоматически.
  • Производительность: Генерация двух чисел – операция легкая. Но в циклах на миллионы итераций учитывайте возможные затраты.

При использовании случайных чисел в финансовых или безопасных системах проверяйте соответствие метода требованиям.

Частые задачи и их решения

Два числа с разным типом (целое и дробное):

function getTwoMixedNumbers(minInt, maxInt, minFloat, maxFloat) {
  const intNum = Math.floor(Math.random() * (maxInt - minInt + 1)) + minInt;
  const floatNum = Math.random() * (maxFloat - minFloat) + minFloat;
  return [intNum, floatNum];
}

Два числа в разных диапазонах:

function getTwoNumbersInDifferentRanges(min1, max1, min2, max2) {
  return [
    Math.floor(Math.random() * (max1 - min1 + 1)) + min1,
    Math.floor(Math.random() * (max2 - min2 + 1)) + min2,
  ];
}
// Пример: первое число от 1 до 10, второе от 50 до 100

Генерация пары чисел с сохранением в переменные:

const [firstNumber, secondNumber] = getTwoRandomInts(0, 99);
// Теперь firstNumber и secondNumber доступны как отдельные переменные

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

Часто задаваемые вопросы

Как получить два случайных целых числа в диапазоне от 1 до 100?

Используйте функцию getTwoRandomInts, передав ей аргументы 1 и 100. Она вернет массив, например, [34, 78]. Для криптографически стойких чисел потребуется Web Crypto API.

Можно ли генерировать два дробных (не целых) числа?

Да, адаптируйте функцию, используя Math.random() без округления. Например: function getTwoRandomFloats(min, max) { return [Math.random() * (max - min) + min, Math.random() * (max - min) + min]; }.

Как избежать ситуации, когда два сгенерированных числа совпадают?

Простейший способ – проверка в цикле. Если второе число совпадает с первым, генерируйте новое. Для больших диапазонов вероятность совпадения мала.

Для каких задач может потребоваться генерация двух случайных чисел?

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

  1. Код случайных чисел: алгоритмы и примеры
  2. Массив случайными числами: как создать в JavaScript
  3. Случайное число от 0: формулы и генератор на JavaScript
  4. Генератор рандомных секунд | JavaScript
  5. Случайное трехзначное число: генерация в JavaScript и онлайн-калькулятор
  6. Random случайные числа онлайн – генератор и примеры