rand函数的用法

已解决

rand函数的用法  悬赏分:20 - 解决时间:2008-4-3 23:20用rand函数产生0到9的随机数: 
1,int(10*rand()/(RAND_MAX+1.0)) 
2,10*rand()/RAND_MAX 
3,rand()%10 
哪种效果更好,第一种是在linux的manu中推荐使用的,文中说不推荐使用第三种,这个我能明白,因为产生随机数的高位比低位更随机,但我感觉第二种也行,为什么非要在RAND_MAX+1.0呢??请高手指点。如果回答的好追加。 问题补充:int i=0; 
while(i++<100) 
cout<<(rand()*10/RAND_MAX)<<" "; 
我用了这样一个语句,在100数种,没有发现输出10的情况啊提问者:  zhqyzhqychn -  助理 三级 最佳答案rand()函数返回最大值就是RAND_MAX 所以假设rand()函数返回最大值的时候 10*rand()/RAND_MAX = 10, 就不是0到9 了 0回答者:  feex -  秀才 二级    4-3 16:13 我来评论>>提问者对于答案的评价:原以为rand最大产生RAND_MAX-1;做了很多次测试都没有RAND_MAX,今天晚上写程序时才发现可以产生谢谢了  相关内容 •  再问关于计算机RAND函数的使用方法 •  rand函数的用法 •  请问turbo c中rand()函数的用法?? •  急急急急急急急急 matlab中rand函数的具体用法 •  C里面的rand函数具体介绍,用法?  更多关于rand()/(RAND_MAX+1.0)的问题>> 查看同主题问题: rand 函数  函数 用法 其他回答    共 3 条 c不是有random函数么? 
直接random(10);不就行了?回答者:  chichujn -  都司 七级    4-3 16:15  rand() 函数有一点不合适, 
每次运行程序出现的随机数次序都一样。 
用int random(int max) 好些回答者:  ryw12403 -  举人 四级    4-3 17:17  如feex所言,如果rand()返回的值刚好是RAND_MAX时,将导致第2个的结果为10,RAND_MAX+1.0是为了使rand()得到的数永远比分母小,这里加的是1.0,为了避免int型溢出为0的情况,1.0的话就 隐式提升为double了,不存在溢出的情况. 

其实,我会选择第3种,因为一看就明白,嘿嘿...回答者:  ggdmdf -  江湖少侠 七级    4-3 17:35
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值