如果我没有用srandom()初始化它,那么random()使用的种子是什么?

时间:2014-05-22 15:40:24

标签: c random

如果我没有用random()初始化它,那么C srandom()使用的种子是什么? 是系统时间吗?

3 个答案:

答案 0 :(得分:5)

random()不在标准C中。

ISO C定义rand()srand()

#include <stdlib.h>
int rand(void);
void srand(unsigned int seed);

The standard answers your question in section 7.22.2:

  

如果在调用rand之前调用srand,则相同   当使用种子首次调用srand时,应生成序列   值为1。

答案 1 :(得分:2)

正如另一个答案正确指出的那样,random()不在ISO C 中。但是,它是in POSIX,其中规则类似于ISO C &#39; rand()

  

rand()一样,random()默认情况下会生成一系列数字,这些数字可以通过调用srandom()并以1作为种子来复制。

答案 2 :(得分:0)

ISO C随机数函数您可以在此处检查如果在使用srand建立种子之前调用rand,则使用值1作为默认种子。

http://www.gnu.org/software/libc/manual/html_node/ISO-Random.html