c语言随机数生成函数和时间函数

c语言随机数生成函数和时间函数是如何生成的呢?小编为大家揭秘来了。更多内容请关注应届毕业生考试网!

一 随机数生成函数(rand,srand)

1)首先,随机数在stdlib.h定义了一个RAND_MAX的宏#define RAND_MAX 0x7fff,也就是不调用srand,只进行rand的话,返回一个[0,32767]的数(闭区间)。

2)随机数种子

void srand(unsigned seed);

如果在rand()前没有调用它,会自动调用一次srand(1)一次。但seed就成了定值,每次运行程序时,产生的随机数都会相同(这个值在[seed,0x32767]之间)。

例如:

#include

#include

int main()

{

int i,j;

i = rand();

j = rand();

printf("%d %d\n",i,j);

return 0;

}

这个程序每次结果都是:14 18767

所以一般用一个变量作为seed,一般用到目前为止流逝的时间。

即srand((unsigned int)time(NULL));

3)随机数范围

rand()返回一个0~RAND_MAX的随机数,一般这个不是你想得到的数据范围,需要进行调整,比较常用的是'%'和'/'操作,如果需要一个0~100的随机数那么就rand()0好了,很容易理解。如果你需要一个浮点数,可以考虑用除法,注意运算时的数据转换操作,rand()返回的'是整数,RAND_MAX也是整数,如果你想得到一个0到1的浮点数,你这样写rand()/RAND_MAX你就大错特错了,这样的结果是0,原因仔细想想也很简答,基本的C语言运算数据类型提升问题,小数部分的尾巴取整的时候舍掉了,解决方法也很简单rand()/(RAND_MAX-0.0),一个产生指定范围随机数的函数大概是这样的:

srand((unsigned int)time(0));

double randval(double low, double high)

{

double val;

val = ((double)(rand()/(RAND_MAX-0.0))*(high - low)) + low;

return(val);

}

c语言中的时间函数:

#include

time_t time(time_t *t);

返回:成功饭后1970年1月1日到现在的所经历的秒数,若t为非空指针,此函数也将返回值存放在t所指向的内存中,失败返回(time_t -1)值,错误在errno中。

例如:

#include

#include

int main()

{

int seconds = time(NULL);

printf("%d\n",seconds);

return 0;

}

这个返回的是秒数而不是正常日期,所以有下面的函数。

#include

char* ctime(const time_t *timep);

返回值:返回正常日期格式的字符串。

这个函数是将timep中存放的time_t类型的变量转换成真实世界的使用的日期表达,然后以字符串形式返回,例如::Wed Jun 30 21:48:09 1999

#include

#include

#include

int main()

{

time_t tm;

tm = time(0);

char *s;

s = ctime(&tm);

printf("%s\n",s);

}

c语言随机坐标函数,c语言随机数生成函数和时间函数相关推荐

  1. PHP的函数-----生成随机数、日期时间函数

    常用的函数 [1]   生成随机数 rand(); 例子: echo rand(); 显示结果: 当刷新时,会有不同的数,默认生成随机数.生成随机数不能控制范围. 如果,想要控制在范围之内,就用: e ...

  2. r语言之生成随机序列,随机数生成函数及用法

    (1)生成正态分布随机数: rnorm(n,mean,sd)     其中,n表示生成的随机数个数,mean表示正态分布均值,sd表示正态分布标准差 > rnorm(5,0,2) [1] -5. ...

  3. 用c语言随机获区100个整数,用rand() 函数去100 个随机的整数的有关问题

    用rand() 函数去100 个随机的整数的问题 int rand100 = (((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MI ...

  4. C语言随机刷新,C语言 刷新缓冲区

    fflush int fflush(FILE* stream); 用于清空文件缓冲区,如果文件是以写的方式打开 的,则把缓冲区内容写入文件. eg: 1. #include #include int ...

  5. R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项)、randomSequence函数创建不含重复项的随机序列数据集、创建随机字符串

    R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项).randomSequence函数创建不含重复项的随机序列数据集.创建随机字符串 ...

  6. C语言生成n个随机坐标,c语言如何生成随机数 怎样用c语言生成n个随机数?

    C语言中如何产生很大的随机数?这个可以一个一个的来生成啊,每次生成一个0-9之前的随机数,然后生成几次 组合起来就可以了. C语言 如何连续产生随机数? 如果我想用C在1s的时间内连续产生多个随机数, ...

  7. c语言随机字符rand,C语言中生产随机数 rand()函数

    一:如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间.RAND_MAX定义在stdlib.h, 其值为214748 ...

  8. c语言不用随机数种子,C语言的随机数与随机种子

    引言: 在实际编程中,我们经常会用到随机数这个概念,其实也是一个伪随机数,实际上并不是一个真正的随机数,但是也足够我们使用了.在C语言中,编写一些关于游戏之类的程序时就需要用到随机数了.同时C语言也提 ...

  9. c语言随机生成5到10,C语言生成随机数

    两个步骤:设置种子和返回随机数值.所需头文件:stdlib.h.如果种子欲由时间生成,则还需time.h. 设置种子的函数:srand.用法:void srand ( unsigned int see ...

最新文章

  1. python入门教程软件-程序员带你十天快速入门Python,玩转电脑软件开发(四)
  2. python操作excel-python操作excel
  3. linux下的du命令
  4. 前端工程化概述||模块化相关规范
  5. flex vue 垂直居中居上_移动开发-flex 布局
  6. helm发布自定义Chart:指定namespace、设置NodePort
  7. 非标准化的阀门企业也在用钉钉宜搭实现数字化转型
  8. CSS中盒模型的理解
  9. spring boot添加swagger步骤
  10. hibernate连接mysql配置文件
  11. python 多进程multiprocessing 模块
  12. 你都用python来做什么-你都用Python来做什么?看看网友们的各种牛X操作
  13. 从零基础入门Tensorflow2.0 ----八、39.3. gpu3
  14. 实验7 寻址方式在结构化数据访问中的应用
  15. python求偏度系数_python pandas库和stats库计算偏度和峰度(附程序)
  16. win7(win10)更改“文件类型显示图标“的终极修改方法
  17. STM32基础12--数模转换(DAC)
  18. 1062: 最大公约数 Python
  19. BAT超级入口“连接”战
  20. 一些前端大牛都在学习的github库

热门文章

  1. jquery设置滚动条样式
  2. 搞掉Windows Media Player后台进程,禁止自动启动
  3. 深度研究微点主动防御
  4. Windows 应急响应篇(保姆级检查流程)
  5. 一次FGC导致CPU飙高的排查过程
  6. 六十星系之52天机巨门坐卯酉
  7. HTML 中 id、name、class 区别
  8. 计算机软件系统由程序和相应的文档组成,全国计算机等级考试一级B考试选择题(计算机软件系统及解析)...
  9. Resources are low on NN. Please add or free up more resources then turn off safe mode manually.
  10. mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER privilege for this op