首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >srand(time(NULL))函数

srand(time(NULL))函数
EN

Stack Overflow用户
提问于 2018-10-14 09:42:52
回答 3查看 23.1K关注 0票数 0
代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

int main( void){

    int x = rand()%100;
    printf("%d\n", x);
    return 0;
}

上面的代码正确地生成一个随机数。这是正确的吗?但是,其他源总是,包括库和srand(time(NULL))。为什么我们必须包括,包括库和srand(时间(空))?有什么理由包括在内吗?

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main( void){
    srand(time(NULL));
    int x = rand()%100;
    printf("%d\n", x);
    return 0;
}
EN

回答 3

Stack Overflow用户

发布于 2018-10-14 09:45:32

因为如果您多次运行此代码,您将得到相同的结果!(而且,rand()在每次运行时返回相同的结果)。因此,您可以在代码的每次运行中初始化随机种子,以通过srand获得不同的随机结果。使用time(NULL)通过srand设置不同的随机种子。

票数 3
EN

Stack Overflow用户

发布于 2018-10-14 09:46:30

srand是一个随机数产生函数,它将rand函数产生的数随机化。

票数 0
EN

Stack Overflow用户

发布于 2018-10-14 09:54:10

想象一下,你有一个(巨大的)图书馆,里面装满了(显然是随机的,但固定的)数字。

当您执行rand()时,您将得到当前图书上的当前号码,并进入下一本。

当您执行srand(<number>)时,您将从这一点开始选择rand()将使用的书。

time(NULL)返回大约从1970-01-01午夜开始的秒数(转换后).这个数字每秒钟都会发生变化,所以使用这个数字来“选择一本书”可以保证每次程序运行时都会出现一个新的“随机”数字序列。

如果您不选择一本书,rand()函数将从书#1 (与srand(1)相同)中获取数字。

在某些情况下,有固定的随机数可能是有用的。例如,您希望用相同的数据测试不同的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52801380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档