Генерация случайных чисел в диапазоне параметров функции
Есть задача, нужно написать функцию с параметрами min, max, которая генерирует случайное число с плавающей точкой от min до max (но не включая max). Пытаюсь использовать Math.random, но не знаю как ему задать диапазон значений, так как он только от 0 выводит
Ответы (3 шт):
В документации Math.random: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
есть нужный вам пример:
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
Вот тут есть немного разных функций простых
А я долгое время пользуюсь этим:
const rand=(min,max=min+10)=>(Math.floor(min+Math.random()*(max+1-min)));
А для float:
const randFloat=(min=0, max=1)=>{
min = min > max ? [max, max = min][0] : min;
return (min+Math.random()*(max-min));
};
Пытаюсь использовать Math.random, но не знаю как ему задать диапазон значений, так как он только от 0 выводит
В интьерньетах встречал такие перлы: Math.random() * (1 - 0) + 0
Поэтому, чтобы не было никакой "магии", на пальцах:
Скажем, нужно случайное целое число от 10 до 15 не включительно.
Math.random() возвращает случайное число в диапазоне [0, 1) — не включая 1
Если умножить число на 5, оно будет диапазон [0, 5)
Добавить +10, станет [10, 15), остается полученное число округлять вниз:
Math.floor( Math.random() * 5 + 10 ) // 10, 11, 12, 13, 14
10 — это ваш min
а 5 — max - min
Оттуда и получается
Math.floor( Math.random() * (max - min) + min )