C语言, 生成1到100间的随机数, 下面两种方法有什么不同?

1.(int)(100.0*rand()/(RAND_MAX+1.0))+1
2.rand()%100+1

假设第一次rand返回1010
第二次rand返回2010
rand_max假设为4000
1,100*(1010/4001)+1约等于100*(1/4)+1=26
2,100*(2020/4001)+1=51 约等于 100*(1/2)+1=51

3,1010%100+1=11
4,2010%100+1=11

第一个式子扩大了随机数波动对结果的影响
尽量选择第一个式子 使结果变得更随机性一些
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-07
没什么不同。

可能1产生的随机数的范围 1 -> 99
2产生随机数1 -> 100
尽量选择2

1因为使用了浮点数,精度不可控,产生随机数也要慢一些。
第2个回答  2012-09-07
2最好了,1把浮点数扯进来干什么?
第3个回答  2012-09-07
不知道

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网