Можно ли на js получить число от - до +?

Рейтинг: -1Ответов: 3Опубликовано: 21.08.2023

с помощью Math.random() нужно получить число между отрицательным и положительным числом. Это возможно?

Ответы

▲ 4Принят

Если вам нужен интервал от -1 до 1, используйте это:

Math.random()*2-1

После умножения интервала от 0 до 1 на 2, получится случайное число между 0 и 2. Осталось вычесть единицу и получить случайное число между -1 и 1. Если вам нужен интервал от -n до n, то используйте это:

(Math.random()*2-1)*n
▲ 3

Ну тут надо подумать.

Math.random() даёт интервал 0..1, а нужно интервал размером (XMax - XMin). Значит, нужно умножить случайное число на (XMax - XMin). Получается случайное число в интервале 0..(XMax - XMin)

А теперь надо сдвинуть этот интервал, добавив нижний предел. Итого выходит

X = Math.random() *  (XMax - XMin) + XMin

Пример для диапазона -2..8:

X = Math.random() *  (8 - (-2)) + (-2) = 
    Math.random() * 10  -  2 
▲ 1

Генерация случайного вещественного числа в интервале [a, b):

const randomInRange = (a, b) => Math.random() * (b - a) + a;