搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求助:关于rand()的用法
标题:
求助:关于rand()的用法
只看楼主
joulejcc
等 级:
新手上路
帖 子:16
专家分:0
注 册:2005-12-24
楼主
问题点数:0 回复次数:3
求助:关于rand()的用法
前几天上课的时候老师给我们介绍了C语言中的一个rand()函数,说是可以随机产生0到1的数,但是我上机编写了一个程序,发现它并不是产生的0到1的数。我上网搜了一下,一些人说这个函数要和srand()一起使用,但是我把他们的程序编译不通过。那位要是知道就麻烦你教我一下。谢谢!
搜索更多相关主题的帖子:
rand
用法
2005-12-24 00:15
吸血鬼王
等 级:
新手上路
帖 子:69
专家分:0
注 册:2005-12-17
第
2
楼
得分:0
可以这样: num=rand()/(rand()+0.1) 注意把num定义成float变量就可以了
2005-12-24 07:46
ryxhh
等 级:
新手上路
威 望:
1
帖 子:63
专家分:0
注 册:2005-12-18
第
3
楼
得分:0
srand()是随机数种子,种子相同,产生的随机也相同,所以一般用时间函数time()作种子,这样就不会产生完全一致的随机数,如:
srand((unsigned)time(NULL));
产生的数为从1970年1月1日开始到现在时间的秒数.
rand()可以产生0到n之间的随机数,用法如下:
num=(int)(n*rnad()/RAND_MAX+1.0)
简单用法如:
num=rand()%n;
2005-12-24 09:26
cleverfox
等 级:
新手上路
帖 子:12
专家分:0
注 册:2005-11-21
第
4
楼
得分:0
实际上来说rand()是伪随机数,它可以产生0——MAXINT之间的整数。使用srand的目的就是为了让每次产生的随机数不同。正如楼上的同志所写的,先使用srand,然后再用rand,这样就可以保证每次所产生的随机数不完全相同了。
举例:掷骰子
int num;
srand(time(NULL));
num = rand() % 6 + 1;
此时num产生的是1——6之间的整数,若要产生其他的数,方法类似
Fox
2005-12-25 19:00
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-39742-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.021030 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved