Да и нет. Проблема, о которой вы думаете, возникает, когда вы зажимаете выходной сигнал из rand()
в диапазон, который на меньше , чем RAND_MAX
(т. Е. Имеется меньше возможных выходных сигналов, чем входных).
В вашем случае вы (обычно) обращаете это: вы берете довольно небольшое количество битов, генерируемых генератором случайных чисел, и распределяете их между тем, что обычно будет большим числом битов в мантиссе твой двойник Это означает, что обычно в двоичном коде есть некоторые битовые комбинации (и, следовательно, конкретные значения двойного), которые никогда не могут появиться. Для большинства людей это не проблема.
Что касается "обычно", всегда возможно, что у вас есть 64-битный генератор случайных чисел, где тип double имеет 53-битную мантиссу. В этом случае у вас может возникнуть та же проблема, что и при ограничении диапазона целыми числами.