随机数函数 rand () srand() (笔记)
来源:互联网 发布:南华大学网络教学平台 编辑:程序博客网 时间:2024/04/30 15:17
定义函数
int rand(void)
函数说明
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。
返回值
返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值至少为32767.
范例
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include<stdlib.h>
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<stdlib.h>
定义函数
void srand (unsigned int seed);
函数说明
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
返回值
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand(( unsigned 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
总结:rand(void)用于产生一个伪随机unsigned int 整数。
srand(seed)用于给rand()函数设定种子。srand()和rand()应该组合使用。
比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100;
是生成 0 到 100 之间的随机数。
用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的,
比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0)) 产生一个0到n之间的随机数
- 随机数函数 rand () srand() (笔记)
- 随机数函数-rand(),srand()
- 随机数函数rand/srand
- 随机数生成函数 srand() rand()
- C函数 随机数rand() srand()
- rand函数和srand函数:产生随机数
- rand函数和srand函数:产生随机数
- 产生随机数函数 rand和srand
- 随机数生成--srand()以及rand()函数用法
- srand,rand随机数发生器函数的使用
- 随机数测试函数 (rand() 和srand() )
- srand/rand随机数生成
- C++,rand,srand随机数
- rand srand产生随机数
- 随机数----srand,rand
- rand srand iOS 随机数
- rand、srand生成随机数
- 随机数(rand与srand)
- 如何更改所有文件夹的图标排列方式和查看方式
- Delphi的"Invalid pointer operation"异常的解决办法
- LCS算法(动态规划实现最长公共子序列)c语言实现
- xml与xsl-fo生成PDF
- 网站资源很多,可是一般不让人用
- 随机数函数 rand () srand() (笔记)
- java policy 策略
- Quartz在Spring中动态设置cronExpression研究(spring设置动态定时任务)【转】
- 提高squid缓存的命中率
- 查询初始化参数的方法
- Spring结合Quartz实现多任务定时调用
- INF文件详解
- CMAP原理及其在MFC中的实现(MAP模板没有顺序遍历的功能)
- EPEL: RHEL 的 Fedora 软件仓库