我想知道c编程中的rand()函数是否遵循非确定性算法
答案 0 :(得分:4)
c中的rand()函数是否遵循非确定性算法(?)
不。 int rand(void)
和void srand(unsigned int seed)
共同构成pseudo-random的序列
数字。与srand()
一起播种,并且相同的种子将生成相同的确定性序列。
rand
函数计算范围为0至的伪随机整数序列RAND_MAX
C11dr§7.22.2.12
srand
函数使用该参数作为新的伪随机数序列的种子,该序列将由随后对rand的调用返回。如果随后以相同的种子值调用srand
,则必须重复伪随机数序列 。如果在对rand
进行任何调用之前调用srand
,则应生成与首次调用srand
且种子值为1时相同的序列。§7.22.2.22 < / p>
注意:编译器之间的顺序可能有所不同,但是在给定的编译中,该顺序是确定性的。