回 帖 发 新 帖 刷新版面

主题:问一个随机产生器的问题

书上说的随机产生三个rand()产生一个随机数 
srand()允许覆盖一个种子值,重新启动另一个随机数序列 该程序使用time(0)的返回值来设置种子,time(0)返回当前时间,通常为从一个开始的秒数  我想问一下最后time(0)的定义到底是什么



回复列表 (共7个回复)

沙发

[url]http://www.programfan.com/club/showpost.asp?id=160718&t=o[/url]

板凳


啦第二个函数是什么意思啊

3 楼

以下摘录《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 楼


这个时间是系统时间或是程序运行时间吗
谢谢

5 楼

“time函数返回自1970年1月1日到目前所经过的秒数,其参数是一个指向long对象的指针,如果提供了这样一个指针,返回的秒数将保存在这个对象中,如果是NULL表示不保存,只由函数的返回值返回。”
摘自给你的链接。
3L回答也提及到过。 - -#

6 楼

哦 小弟谢谢个位热心的哥哥姐姐

7 楼


如果他返回一个1970到现在的秒数的话这个数就太大老把 ,再把它用再为随机数上野打的过分老把含有1970是一个固定的time参数吗

我来回复

您尚未登录,请登录后再回复。点此登录或注册