7-9. (сложно) Реализация nrand в §7.4.4/135 не будет
работать для аргументов, превышающих RAND_MAX. Обычно это ограничение
не представляет проблемы, поскольку RAND_MAX в любом случае часто является максимально возможным целым числом
. Тем не менее, существуют реализации, в которых RAND_MAX
намного меньше максимально возможного целого числа. Например,
нередко бывает, что RAND_MAX равен 32767 (2^15 -1), а максимальное
возможное целое число - 2147483647 (2^31 -1). Переопределите nrand так, чтобы
он хорошо работал для всех значений n.
Если n > RAN_MAX мои мысли придется принять
Код: Выделить всё
double temp = n/RAN_MAX + .5;
int mult = temp;
int randomNum = 0;
for (int i = 0; i != mult; mult++)
randomNum += rand();
Подробнее здесь: https://stackoverflow.com/questions/214 ... n-rand-max
Мобильная версия