本帖最后由 yanghelovehuang 于 2018-8-16 11:07 编辑
请问下各位大佬,2 * (rand() / (RAND_MAX + 1.0))这个代码是产生0-2的随机数,但是代码我有点不太明朗白:
rand产生的随机数范围是0-RAND_MAX,最大的数是RAND_MAX, 也就是说RAND_MAX + 1.0 > rand(), 大家都知道c语言中‘/’符号在运算公式中是去商的,而且取得是整数,那么问题来了:
rand() < RAND_MAX 所以在数**算中rand()除以RAND_MAX等于0.几,而/符号又取整数,所以rand()/RAND_MAX只能是0,而上面的公式也应该等于0,为什么会是0-2的范围呢?这里我不明白求知道的大神指导下。
|