Если вы позвоните drand48()
, вы получите диапазон [0.0, 1.0).
(Это полуоткрытый интервал, потому что drand не вернет 1.0, только вещи, очень близкие к 1.)
Если умножить возвращаемое значение drand48()
на 4, вы получите диапазон [0,0, 4,0).
Если вы вычли 2 из 4*drand48()
, вы получите диапазон [-2.0, 2.0).
Итак, поэтому:
4*drand48() - 2
PS: Я предполагаю, что вы пытаетесь сгенерировать вещественное число, а не целое число.Если вы пытаетесь получить целое число, используйте решение rand()
, опубликованное @WeatherVane.