博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rand()产生随机数 及其和clock()的不同
阅读量:6541 次
发布时间:2019-06-24

本文共 1556 字,大约阅读时间需要 5 分钟。

rand()使用

  首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数。

定义函数 : int rand(void) 函数说明 : 因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand ()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。 返回值: 返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。 0~RAND_MAX每个数字被选中的机率是相同的。 示例如下:
#include
#include
#include
//产生Range_Min-Range_Max之间的随机数,必须初始化种子,否则每次结果都一样int main(void){ time_t t; srand((unsigned) time(&t)); printf("%d\n", (unsigned) time(NULL)); printf("%d\n", (unsigned) time(&t)); int Range_Min = 1; int Range_Max = 10; for(int i=0; i<20; i++) { printf("%d\n",(int)(Range_Max*rand()/(double)RAND_MAX) + Range_Min); } return 0;}

  

rand()和clock()的不同

clock计算的是进程实际使用的各种时间,time是wall time,即钟表时间,此时间内操作系统可能会调度多个进程执行。

函数名: clock 

功 能: 确定处理器时间 
用 法: clock_t clock(void); 
程序例: 

 

#include
#include
#include
int main(void) { clock_t start, end; start = clock(); // vc下,头文件是
,S要大些,其它情况都要小写;linux下,头文件为unistd.h Sleep(2000*2); end = clock(); printf("The time was: %d seconds\n", (end - start)/CLOCKS_PER_SEC); return 0; }

 

而time()是个时间的函数,time(NULL)就是去当前的时间

程序实例:

#include
#include
int main(void) { time_t t; t = time(NULL); printf("The number of seconds since January 1, 1970 is %ld",t); return 0; }

  

转载地址:http://ndsdo.baihongyu.com/

你可能感兴趣的文章
命令行常用命令--软连接
查看>>
HTTP POST GET 本质区别详解
查看>>
OC继承专题
查看>>
PHP中HASH函数的优化技巧
查看>>
MD5加密
查看>>
RSA算法实例
查看>>
ant
查看>>
微信,想要说爱你,却没有那么容易!
查看>>
有关sqlite与sql
查看>>
MapXtreme 2005 学习心得 概述(一)
查看>>
php进一法取整、四舍五入取整、忽略小数等的取整数方法大全
查看>>
Hibernate的拦截器和监听器
查看>>
游戏中学习Bash技能
查看>>
ubuntu 12.04系统托盘不显示ibus输入法图标的解决方法
查看>>
WSDP
查看>>
Memory Management
查看>>
The Packaging Process in Yocto/OE
查看>>
JQUERY 对 表格中的数据重排序
查看>>
程序员常用借口指南
查看>>
关于PXE网络安装linux系统中碰到的个别问题
查看>>