主题:问一个随机产生器的问题
ww3355267
[专家分:0] 发布于 2010-06-03 22:31:00
书上说的随机产生三个rand()产生一个随机数
srand()允许覆盖一个种子值,重新启动另一个随机数序列 该程序使用time(0)的返回值来设置种子,time(0)返回当前时间,通常为从一个开始的秒数 我想问一下最后time(0)的定义到底是什么
回复列表 (共7个回复)
沙发
3751002 [专家分:160] 发布于 2010-06-03 22:37:00
[url]http://www.programfan.com/club/showpost.asp?id=160718&t=o[/url]
板凳
ww3355267 [专家分:0] 发布于 2010-06-03 22:55:00
啦第二个函数是什么意思啊
3 楼
3751002 [专家分:160] 发布于 2010-06-03 23:03:00
以下摘录《Linux C编程一站式学习》
C标准库中生成伪随机数的是rand函数,使用这个函数需要包含头文件stdlib.h,它没有参数,返回值是一个介于0和RAND_MAX之间的接近均匀分布的整数。RAND_MAX是该头文件中定义的一个常量,在不同的平台上有不同的取值,但可以肯定它是一个非常大的整数。
C标准库允许我们自己指定一个初值,然后在此基础上生成伪随机数,这个初值称为Seed,可以用srand函数指定Seed。通常我们通过别的途径得到一个不确定的数作为Seed,例如调用time函数得到当前系统时间距 1970年1月1日00:00:00的秒数,然后传给srand:srand(time(NULL));
这俩函数就是为了生成个伪随机数。 结果就是个数字,看起来带有随机性。
其实有个好东西叫搜索引擎
4 楼
ww3355267 [专家分:0] 发布于 2010-06-03 23:11:00
这个时间是系统时间或是程序运行时间吗
谢谢
5 楼
3751002 [专家分:160] 发布于 2010-06-03 23:14:00
“time函数返回自1970年1月1日到目前所经过的秒数,其参数是一个指向long对象的指针,如果提供了这样一个指针,返回的秒数将保存在这个对象中,如果是NULL表示不保存,只由函数的返回值返回。”
摘自给你的链接。
3L回答也提及到过。 - -#
6 楼
ww3355267 [专家分:0] 发布于 2010-06-03 23:20:00
哦 小弟谢谢个位热心的哥哥姐姐
7 楼
ww3355267 [专家分:0] 发布于 2010-06-03 23:24:00
如果他返回一个1970到现在的秒数的话这个数就太大老把 ,再把它用再为随机数上野打的过分老把含有1970是一个固定的time参数吗
我来回复