主题:小弟愚笨求各位老鸟赐教啊拜托老
ww3355267
[专家分:0] 发布于 2010-06-03 23:30:00
如果他返回一个1970到现在的秒数的话这个数就太大老把 ,再把它用再为随机数上野打的过分老把含有1970是一个固定的time参数吗
回复列表 (共6个回复)
沙发
ww3355267 [专家分:0] 发布于 2010-06-03 23:33:00
不好意思打错老我是问srand()允许覆盖一个种子值,重新启动另一个随机数序列 该程序使用time(0)的返回值来设置种子,time(0)返回当前时间,通常为从一个开始的秒数 我想问一下最后time(0)的定义到底是什么的定义刚刚有个高手说
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));
这俩函数就是为了生成个伪随机数。 结果就是个数字,看起来带有随机性。
其实有个好东西叫搜索引擎
可是小弟愚笨不明其意望各位老鸟赐教啊
板凳
ww3355267 [专家分:0] 发布于 2010-06-03 23:39:00
小弟在线等拜托老个位哥哥姐姐
3 楼
雪光风剑 [专家分:27190] 发布于 2010-06-04 05:11:00
其实这个种子数多大多小你用不着关心他。srand是一个伪随机器,也就是说在一定时间内如果你不指定种子地调用这个函数,那么其随机的结果将是可预见的。加上一个种子就是为了打乱这种伪随机器的规律,至于这个种子有多大,不是你需要关心的问题,你只要知道现在的伪随机器的结果是难以预见的就可以了。至于你关心的随机结果的问题,你完全可以对srand的结果加以计算,比如你想生成0~100内的随机数,那么,简单地,只需要形如srand()%101-1地截取这个随机结果就可以了
4 楼
ww3355267 [专家分:0] 发布于 2010-06-04 08:07:00
哦 小弟明白了,谢谢哥哥啊
5 楼
alweeq86 [专家分:1170] 发布于 2010-06-04 08:10:00
不知道LZ是哪里人 说的是哪国汉语 我看了两遍才看懂
6 楼
ww3355267 [专家分:0] 发布于 2010-06-04 13:11:00
不好意思啊
我来回复