This question already has answers here:
Random seed at runtime
(3个答案)
3年前关闭。
在我的程序中,我有一个函数
为此,我设置了种子
有没有一种方法可以设置
(3个答案)
3年前关闭。
在我的程序中,我有一个函数
return_random_vector()
,它接受一组数字,例如1,2,3,4,5
,并返回数字的随机重排,例如2,5,1,4,3
。为此,我设置了种子
srand(time(NULL))
。对于我的程序,我希望能够再次使用1,2,3,4,5
调用此函数并获得它们的另一个重新排列,例如3,1,4,5,2
。有没有一种方法可以设置
srand()
以便重置种子? 最佳答案
要获得其他设置,您可以再次调用return_random_vector()
,而不必在两者之间调用srand()
。
在第一次调用srand((unsigned)time(NULL))
之后立即调用return_random_vector()
可能会生成相同的集合,因为time()
可能会返回相同的值,即经过的时间(以秒为单位)。
因此,实际上您会将种子重置为与第一次调用之前相同的值。并将种子设置为相同的值将再次生成相同的随机数集。
您还可以查看std::shuffle (C++11)。
关于c++ - 在程序c++中更改随机种子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34890618/
10-14 13:36