C ++ srand()函数

时间:2016-05-20 02:26:34

标签: c++ srand

有人可以解释一下srand的确切做法。我知道它与函数rand有关,并且输入rand函数的值是一个种子值,但这个种子值究竟是如何影响flex-basis函数的呢?

2 个答案:

答案 0 :(得分:1)

在具有特定参数的srand之后,对rand的后续调用将产生完全相同的序列。因此,您可以使用srand来允许用户例如准确地再现使用随机数的算法的结果。例如,在我的C上,

rand: 16807
rand: 282475249
rand: 1622650073

srand(3)
rand: 50421
rand: 847425747
rand: 572982925

srand(3)
rand: 50421
rand: 847425747
rand: 572982925

请注意,第二个序列和第三个序列是相同的。

如果你问的是种子与下面的随机数有什么确切的数字关系,那通常是无关紧要的;如果你真的需要知道,你需要知道使用的确切伪随机数生成算法:不同的C编译器可以自由使用不同的算法,因为算法没有在C语言规范中定义。

答案 1 :(得分:0)

以下是 windows 平台中的工具:

srand

所以rand只是设置随机种子以进行跟随{{1}}调用生成相同的输出。