代码里的srand(time(0))是什么意思? 10

for(inti=0;i<NUM;i++)s[i]=double(rand())/RAND_MAX*100;又是什么意思?哪位大神详解一下嘛?... for (int i=0; i<NUM; i++)
s[i] = double(rand())/RAND_MAX * 100;
又是什么意思?哪位大神详解一下嘛?
展开
 我来答
八哥说科技
高粉答主

2019-09-26 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:111 获赞数:78609

向TA提问 私信TA
展开全部

代码里的srand(time(0))的意思是:用当前时间来设定rand函数所用的随机数产生演算法的种子值。

其中,time(time_t *t); 是C标准库函数,如果t是空指针,直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。

srand (unsigned seed)函数中参数 unsigned seed 表示随机数产生器的初始值(种子值)。srand设置产生一系列伪随机数发生器的起始点,要想把发生器重新初始化,可用1作seed值。任何共它的值都把发生器匿成一个随机的起始点。rand检索生成的伪随机数。

扩展资料:

随机数生成的相关说明:

1、(double)rand() / RAND_MAX,表示生成一个 0~1.0 之间的随机浮点数

RAND_MAX指的是 C 语言标准库 <stdlib.h> 中定义的一个宏,是 <stdlib.h> 中伪随机数生成函数 rand 所能返回的最大数值。rand 返回 0~RAND_MAX 之间的随机数。(double)rand() / RAND_MAX得到一个 0~1.0 之间的随机浮点数。

2、srand函数与rand函数的关系:

在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。此函数可以设定rand函数所用的随机数产生演算法的种子值。任何大于一的种子值都会将rand随机数所产生的虚拟随机数序列重新设定一个起始点。

参考资料来源:百度百科-time()

参考资料来源:百度百科-srand

参考资料来源:百度百科-RAND_MAX

ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
White_MouseYBZ
2013-10-27 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6411万
展开全部
rand()函数产生的是“伪”随机数,它是由软件做成m序列发生器输出的。这个m序列发生器在初始状态不变的情况也,产生的“序列”是相同的——比如说在某一种状态(如0000...)下,它产生的序列是1 2 3 4 5 2 3 5 1 6......那么,下一次在0000...的初始状态下产生的序列还是1 2 3 4 5 2 3 5 1 6......但是,如果初始状态不同,则产生的序列就不同了。为了使我们得到的“伪”随机数更像“真”随机数,我们希望每次调用rand()函数前的初始状态是变化的。为此,C设计了一个srand()函数,它预置m序列发生器的初始状态,而且用一个随时可变的时间函数的返回值来调用srand(),这样它预置的初始状态就是随时间变化的,这样产生的m序列尽管仍然是“伪”的,但就有了以假乱真的效果。
double(rand())/RAND_MAX * 100;这个一句是这样的:rand()函数产生随机数是0~32767之间的整数,将它用double强制为double型后除以RAND_MAX(它是C定义的常数32767),这样就得到了0~1之间的随机数,再乘以100就获得了10~100间的double型随机数……
希望对你有帮助。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沛沛猪的母婴小智慧
高粉答主

推荐于2017-10-09 · 醉心答题,欢迎关注
知道大有可为答主
回答量:1.2万
采纳率:94%
帮助的人:962万
展开全部
  srand(time(0)) 就是给这个算法一个启动种子,也就是算法的随机种子数,有这个数以后才可以产生随机数,用1970.1.1至今的秒数,初始化随机数种子。
  Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
御坂妹妹15842
2013-10-27 · TA获得超过326个赞
知道小有建树答主
回答量:197
采纳率:0%
帮助的人:223万
展开全部
srand函数是初始化随机数的种子,为接下来的rand函数调用做准备。
time(0)函数返回某一特定时间的小数值。
这条语句的意思就是初始化随机数种子,time函数是为了提高随机的质量(也就是减少重复)而使用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式