注册 登录
编程论坛 VC++/MFC

随机数问题

发布于 2010-09-26 11:54, 528 次点击
产生1到100的随机数
相较于 int i = 1+rand()%100 为什么int i = (int)(1.0+100*rand()/(RAND_MAX+1.0)) 比较好???详解!

[ 本帖最后由 fairy_tail 于 2010-9-26 23:19 编辑 ]
4 回复
#2
m21wo2010-09-26 19:54
int i = rand()%100 这是产生0到99的随机数!
而int i = (int)(1.0+100*rand()/(RAND_MAX+1.0)) 是产生1到100的随机数!当然这个好啊!
#3
2010-09-26 23:17
回复 楼主 fairy_tail
囧啊!那就改成int i = 1+rand()%100
问的不是你回答的这个角度
#4
m21wo2010-09-27 13:39
那我就不知道了哦!
#5
吴伟迪2010-09-27 20:13
int i = 1+rand()%100
int i = (int)(1.0+100*rand()/(RAND_MAX+1.0))
这2行代码请楼主注意强制的INT转换,这个是有风险的,强制转换是不提倡使用的,虽然第二行看上去可以提供.0精度的数据,但是有个强制转换在,是绝对比第一个的使用价值低的
1