在C++编程中srand((unsigned int)(time(NULL)))这句代码的解读
2017-11-26 22:54
344 查看
分享这个博客链接,讲的真的很好。
主要有以下3方面收获:
1.srand跟rand的关系。
就是每次使用rand(),都会看之前调用了srand()函数没有,没有,默认调用了srand(1).
有调用,就是strang(seed),这里的seed就是标题的time(NULL).
rand()取随机数公式:
要取得[a,b)的值可以用:(rand()%(b-a))+ a;(当a为0时,可以用rand()% b)
取得伪随机浮点数: (rand()/ double(RAND_MAX))可以取得0-1之间的浮点数,
如果想获得更大的随机值可以通过(rand()/ double(RAND_MAX)/ 10)以此类推
2.time函数的简单用法
在c中的头文件为
time函数可以获取当前的系统时间(但是获取的是秒数,是从1970年1月1日零时零分零秒到目前为止所经过的时间),ctime可以将其转化为常规的时间
3.代码执行优先级
我们可以看到这个函数的参数:(unsigned int)time(0)
从优先级的角度看,这些都是单目运算符,单目运算符的处理顺序是从右往左的,所以上面的处理过程是:对于time函数,给了一个参数为0的值,返回一个当前系统时间的秒数,然后在将其强转为unsigned int类型。
还有如同(*p++):这个也是单目运算符,处理也是从右往左的
具体更多详细内容,看http://blog.csdn.net/msdnwolaile/article/details/50707481。
主要有以下3方面收获:
1.srand跟rand的关系。
就是每次使用rand(),都会看之前调用了srand()函数没有,没有,默认调用了srand(1).
有调用,就是strang(seed),这里的seed就是标题的time(NULL).
rand()取随机数公式:
要取得[a,b)的值可以用:(rand()%(b-a))+ a;(当a为0时,可以用rand()% b)
取得伪随机浮点数: (rand()/ double(RAND_MAX))可以取得0-1之间的浮点数,
如果想获得更大的随机值可以通过(rand()/ double(RAND_MAX)/ 10)以此类推
2.time函数的简单用法
在c中的头文件为
#include <time.h>//C语言的头文件 #include <ctime>//C++语言的头文件
time函数可以获取当前的系统时间(但是获取的是秒数,是从1970年1月1日零时零分零秒到目前为止所经过的时间),ctime可以将其转化为常规的时间
3.代码执行优先级
我们可以看到这个函数的参数:(unsigned int)time(0)
从优先级的角度看,这些都是单目运算符,单目运算符的处理顺序是从右往左的,所以上面的处理过程是:对于time函数,给了一个参数为0的值,返回一个当前系统时间的秒数,然后在将其强转为unsigned int类型。
还有如同(*p++):这个也是单目运算符,处理也是从右往左的
具体更多详细内容,看http://blog.csdn.net/msdnwolaile/article/details/50707481。
相关文章推荐
- srand((unsigned int)time(NULL))引发的思考
- C++中的srand(time(null))利用时间设置随机种子产生随机数
- c语言中语句srand(time(NULL))什么意思。
- srand((unsigned)time(NULL));
- C++中的srand(time(null))利用时间设置随机种子产生随机数
- srand((unsigned)time(NULL))和rand的区别
- srand((unsigned)(time(NULL)))的用法
- srand((unsigned)time(NULL));
- 随机数rand()必须结合srand(time(NULL))
- 随机数rand()必须结合srand(time(NULL))
- C++中的srand(time(null))利用时间设置随机种子产生随机数 http://blog.csdn.net/youoran/article/details/10950671
- C++中的srand(time(null))利用时间设置随机种子产生随机数
- 关于srand((unsigned)time(NULL))
- 随机数rand()必须结合srand(time(NULL))
- srand( time(NULL) )
- rand()和srand((unsigned)time(NULL))产生的随机数有什么不同http://blog.csdn.net/jinjingwen/article/details/6205537
- srand(time(NULL))是什么意思?
- “srand((unsigned)time(NULL));”到底是什么意思?
- srand((unsigned)time(NULL))详解
- linux C语言获取随机数rand()和srand(time(NULL))介绍