深入了解生成随机数的函数rand()
来源:互联网 发布:mac图片在哪里找到 编辑:程序博客网 时间:2024/04/28 00:12
百度知道:
我们知道在产生随机数的时候,需要一个叫做种子seed的值作为产生随机数算法的初始值。
而C/C++库中的srand就是为这一次的随机数生成设置种子。s代表的就是seed的意思。time_t time(time_t *time);该函数返回自计算机计时的某个时刻起到现在所过去的秒数。
一般是返回自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数。
所以综上所述:
srand((unsigned)time(NULL));
这语句的含义就是以自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数作为
产生随机数算法的种子seed。
没有语句会对程序产生什么影响:
如果在程序运行时没有自主设置种子的话,用函数rand产生的随机数序列会是一样的。
而用srand设置随机数种子后,可能产生不同的随机序列(概率很大)。
之所以说以很大的概率产生不同的随机数序列,是因为从上面的解释可以看到,
srand是以秒数为单位的。一旦程序多次运行的时间间隔少于1s。那么srand设置种子也没有什么用处。所以库函数产生随机数有一定的缺陷。不知道我解释明白了没有!
百度知道:
c语言中 srand(time(NULL)); 这句话是什么意思(尤其是 NULL)?
c语言中 srand(time(NULL)); 这句话是什么意思(尤其是 NULL)?
这是两个函数。一个是srand函数。这是在调用rand()这个函数之前使用的。rand()是一个产生随机数的函数。而srand是一个设置随机数种子的函数。通常这两个函数是一起使用的。来完成产生随机数的功能。
而time(NULL)这个函数的返回值是作为srand函数的参数的。意思是以现在的系统时间作为随机数的种子来产生随机数。至于NULL这个参数。只有设置成NULL才能获得系统的时间。
百度百科:
time()
time() 是指返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数的函数。
主要用来获取当前的系统时间,返回的结果是一个time_t类型,其值表示从UTC(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime函数将time_t所表示的UTC时间转换为本地时间(我们是+8区,比UTC多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。
定义:time_t time(time_t *t);
返回值: 返回一个包含当前时间的 Unix 时间戳的整数。
0 0
- 深入了解生成随机数的函数rand()
- rand函数生成随机数
- rand()函数生成随机数
- 随机数生成函数 srand() rand()
- c++ 生成随机数rand()函数的使用:设定范围
- 生成随机数函数rand用法简介
- 随机数生成--srand()以及rand()函数用法
- 生成随机数函数rand用法简介
- C++中rand()函数生成随机数
- 用rand()生成随机数测试sort()函数
- rand函数随机生成固定位数随机数
- 区间内的随机数的生成【rand()】
- rand与srand:随机数的生成
- 生成随机数rand()
- rand生成随机数
- srand/rand随机数生成
- rand生成伪随机数
- rand、srand生成随机数
- 【leetcode】15. 3Sum
- 来来来!关于iOS基础面试咱俩好好唠唠
- Android中的Shape使用总结
- C#管理员权限调用cmd以及以管理员身份生成程序
- 带时间参数或有相关时间的函数
- 深入了解生成随机数的函数rand()
- Android基础之四大组件---Activity
- Linux Bash Script
- Unity AI学习网址
- Android Volley 之自定义Request
- python生成html报告
- 为Web开发者准备的10个最新工具
- Toast的动画效果
- HttpClient的psot方式