




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言中srand(), rand(), time()函数srand函数srand函数是随机数发生器的初始化函数。 原型:void srand(unsigned seed); 用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子,后面的rand() 函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数(即从1970年1月1日的00:00:00到当前你所处的时间所经过的秒数),然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand(unsigned) time(&t); 还有一个经常用法,不需要定义time_t型t变量,即: srand(unsigned)time(NULL); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。srand(int)getpid(); 使用程序的ID(getpid()来作为初始化种子,在同一个程序中这个种子是固定的。例1(C语言)随机输出十个0-100之间的整数 程序例1: #include /*用到了srand函数,所以要有这个头文件*/#include #include /*用到了time函数,所以要有这个头文件*/#define MAX 10int main( void) int numberMAX = 0; int i; unsigned int seed; scanf(%d,&seed);/*手动输入种子*/ srand(seed); for(i = 0; i MAX; i+) numberi = rand() % 100; /*产生100以内的随机整数*/ printf(%d , numberi); printf(n); return 0;例2(C语言)程序例2: #include #include #include /*用到了time函数,所以要有这个头文件*/#define MAX 10int main( void) int numberMAX = 0; int i; srand(unsigned) time(NULL); /*播种子*/ for(i = 0; i MAX; i+) numberi = rand() % 100; /*产生100以内的随机整数*/ printf(%d , numberi); printf(n); return 0;例3(C+)#include #include #include using namespace std; int main() double random(double,double); srand(unsigned(time(0); for (int icnt = 0; icnt != 10; +icnt) cout No. icnt+1 : int(random(0,10) endl; return 0; double random(double start, double end) return start+(end-start)*rand()/(RAND_MAX+ 1.0);在VC+6.0中输出的结果是:= No.1: 6No.2: 3No.3: 8No.4: 7No.5: 0No.6: 8No.7: 4No.8: 8No.9: 7No.10: 9=rand函数简介功 能::伪随机数发生器 所属库:stdlib.h 用 法: 需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每行代码都可以产生不同的随机数。 函数原型:int rand(void); 相关函数:srand、time、GetTickCount程序例程序1: #include stdio.h#include stdlib.hint main(void) int i; printf(Ten random numbers from 0 to 99nn); for(i=0; i10; i+) printf(%dn, rand() % 100); return 0;例1程序在每次运行时都会生成相同的十个伪随机数,如要每次生成的随机数不同应结合srand函数和time函数。如下: 程序例2: #include stdio.h#include stdlib.h#include time.hint main(void) int i; srand(unsigned int)time(NULL); printf(Ten random numbers from 0 to 99nn); for(i=0; i= 0;time函数函数名:time 头文件:time.h 函数原型:time_t time(time_t * timer) 功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。 补充说明:time函数的原型也可以理解为 long time(long *tloc),即返回一个long型整数。因为在time.h这个头文件中time_t实际上就是: #ifndef _TIME_T_DEFINED typedef long time_t; /* time value */ #define _TIME_T_DEFINED /* avoid multiple defines of time_t */ #endif 即long。函数应用举例time函数获得日历时间。日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。程序例1: #include #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; 程序例2: /time函数也常用于随机数的生成,用日历时间作为种子。 #include #include #includeint main(void) int i; srand(unsigned)time(NULL); printf(ten random numbers from 0 to 99nn); for (i=0; i10; i+) printf(%dn, rand()%100); return 0;程序例3: 用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。 #include #include #include int main(void) time_t timer; / time_t就是long int 类型 struct tm *tblock; timer = time(NULL); / 这一句也可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年儿科专业知识综合检测竞赛答案及解析
- 2025年肿瘤科治疗方案选择模拟考试卷答案及解析
- 2025年肝胆科学科肝硬化并发症处理模拟考试卷答案及解析
- 2025学校会计面试题目及答案
- 2025年影像学技术应用考试答案及解析
- 2025年蚌埠国钛纳米材料有限公司公开招聘工作人员50人考前自测高频考点模拟试题及参考答案详解
- 2025年全科医学知识应用与拓展模拟试卷答案及解析
- 2025年急诊科心脏骤停护理流程考试答案及解析
- 2025湖南省疾病预防控制中心(湖南省预防医学科学院)高层次人才公开招聘4人模拟试卷带答案详解
- 2025年医学遗传学家庭遗传病诊疗知识考核试卷答案及解析
- 无人机教育培训创业计划书
- 企业数字化转型的五大关键要素
- 咸阳社区面试题及答案
- 年产3万吨生物基PTT聚合项目环评资料环境影响
- 电力工程施工进度及安全保障措施
- GB/T 19973.2-2025医疗产品灭菌微生物学方法第2部分:用于灭菌过程的定义、确认和维护的无菌试验
- 装修合同意向协议书
- 鸡蛋分拣培训课件
- 浙江省家庭居室装饰装修施工合同(示范文本)(2021版)
- 安全隐患整改回复单
- 桂林旅游学院新生入馆教育学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论