如何为随机生成器设置种子,以便在不同的处理器上使用不同的数字序列?
我的第一次尝试是使用处理器的等级作为种子。
然后我发现 srand(0)
给出的序列与 srand(1)
相同。
目前,我正在这样做:
srand(time(NULL) + rank)
这种方法可行吗?或者,还有更好的方法? 谢谢
最佳答案
使用 rand()
初始化 time(NULL)
生成不同的种子,并将该种子传递给您的进程/线程。是的,使用不同于 rand()
的东西。
关于C++ RNG : how to get different rand generators on different processors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873761/