如果我没有用random()
初始化它,那么C srandom()
使用的种子是什么?
是系统时间吗?
答案 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