Таким образом, следующий код делает 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