Рандомно 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.
Число 1:
Число 2:
- Сумма
- Разность (модуль)
- Произведение
Калькулятор выше позволяет быстро получить два случайных числа. Введите минимальное и максимальное значения диапазона, и инструмент выдаст пару чисел.
Как работает генерация двух чисел?
Базовый механизм – функция 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 доступны как отдельные переменные
Используя приведенные функции и калькулятор, вы можете мгновенно получать пары случайных чисел для любых задач – от учебных примеров до прототипов игр.