在生成随机数方面,什么是种子?

时间:2013-02-16 20:06:39

标签: c++ random seeding

在生成随机数方面,什么是种子?

我需要生成数百到数千个随机数,我已经阅读了很多关于使用“种子”的内容。什么是种子?是随机数从哪里开始的种子?例如,如果我将种子设置为5,它会生成从5到我的限制的数字吗?所以它永远不会给我3个例子。

我正在使用C ++,所以如果您提供任何示例,那么如果它是在C ++中则会很好。

谢谢!

1 个答案:

答案 0 :(得分:35)

实际上通常称为随机数序列的是“伪随机”数字序列,因为这些值是使用确定性算法计算的,并且概率不起作用。

“种子”是序列的起点,保证如果从同一种子开始,您将得到相同的数字序列。这对于调试非常有用(当您在程序中查找错误时需要能够重现问题并对其进行研究时,非确定性程序将难以调试,因为每次运行都会有所不同)

如果您只需要一个随机的数字序列而不需要重现它,那么只需将当前时间用作种子...例如:

srand(time(NULL));