[宝典]C 随机数产生函数
例子代码:
#include
#include
#include
void main( void )
{
int i;
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
————————————————
执行结果:
6929
8026
21987
30734
20587
6699
22034
25051
7988
10104
——————————————————————
关于rand():
产生一个伪随机数。
int rand(void);
返回值:rand返回如上所述的一个伪随机数。没有错误返回。
说明rand函数返回一个0到RANDMAX范围内的伪随机整数。在调用rand之前使用srand
函数传送伪随机数生成器。
RANDMAX的定义在stdlib.h里面
——————————————————————
关于srand():
设置一个随机起始点
void srand(unsigned int seed);
返回值:无
参数:seed
srand函数为产生一序列伪随机整数而设置起始点。为了重新初化该生成器,使用1作为
seed自变量。seed的任何其它值设置该生成器为随机起始点。rand检索生成的伪随机数。
在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。
使用rand函数获得随机数,为了避免重复 用随机种子函数 srand(); 举个例子:产生10,100 之间的随机数
srand(time(NULL));// 需要头文件 time.h,stdlib.h
int i=10+rand()%91;//产生10,100 之间的随机数
用
rand()
生成随机数
rand(产生随机数)
相关函数
srand
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
头文件
#include
定义函数
int rand(void)
函数说明
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。
返回值
返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。
范例
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
执行
9 4 8 8 10 2 4 8 3 6 9 4 8 8 10 2 4 8 3 6
srand(设置随机数种子) 相关函数
rand
表头文件
#include
定义函数
void srand (unsigned int seed);
函数说明
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用
geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数
值每次就会一样。
返回值
范例
/* 产生介于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);
}
}
执行
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
一般来说使用 C 库函数 rand() 会获得一个从 0 到 65535 之间的随机数。 所以,你如果需要一个 100 到 200 之间的随机数,你就应该使用 rand() % 100 + 100。
而浮点吗,根据你所需要的精度,自己想办法转换一下。 比如只需要 0.00 到 0.99,用 (float)((rand()%100) / 100.0) 就可以了。