Chinaunix首页 | 论坛 | 博客
  • 博客访问: 318503
  • 博文数量: 145
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 1510
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-19 11:12
文章分类

全部博文(145)

文章存档

2007年(75)

2006年(70)

我的朋友

分类: LINUX

2006-08-04 22:47:20

c语言里函数rand()和srand()的用法

                                      

rand(void)用于产生一个伪随机unsigned int 整数。

srand(seed)用于给rand()函数设定种子。


srand 和 rand 应该组和使用。一般来说,srand 是对 rand 进行设置。

比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100;

是生成 0 到 100 之间的随机数。

 

srand()是用来初始化随机种子数的,因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,式子如下:

rand = rand*const_1 + c_var;

srand函数就是给它的第一个rand值。

 

用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的,

比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))   产生一个0到n之间的随机数

范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include
#include
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
阅读(3122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~