Таким образом, следующий код делает 0 < r < 1
r = ((double) rand() / (RAND_MAX))
Почему создание r = ((double) rand() / (RAND_MAX + 1))
делает -1 < r < 0?
Не следует добавлять одно к RAND_MAX, чтобы сделать 1 < r < 2?
Изменить: я получал предупреждение: целочисленное переполнение в выражении
на этой строке, так что это может быть проблемой. Я просто сделал cout << r << endl
, и он определенно дает мне значения между -1 и 0