【发布时间】:2021-03-22 05:12:20
【问题描述】:
如果我做rand()/RAND_MAX,它会给我一个随机概率值吗?
如果我这样做,是否有 50%(平均)的值会超过 0.5?
【问题讨论】:
-
设为
rand() / (double)RAND_MAX,否则它是一个整数除法,几乎总是0。 -
只使用
1.*rand()/RAND_MAX- 因为 rand() 可以返回 0 和 RAND_MAX 这两者都可以返回一个从 0.0 到 1.0 的值 -
它是随机的,所以你的结果会有所不同,但我得到了
Number less than 0.5 = 50000517Number greater than 0.5 = 49999483onlinegdb.com/BJd-joSEd -
rand() 被认为是非常糟糕的伪随机数生成器,所以 YMMV。