使用srand作为随机种子时的重复输出

时间:2014-10-04 22:31:19

标签: c++ random srand

我正在使用srand(time(NULL));生成随机种子。

问题是,我正在向LINUX集群提交30多个相同的作业。如果我一次提交一个,一切都很好,但当然我更喜欢使用批处理作业一次提交所有30个。更容易,更快捷。问题是,然后几批工作似乎都完全同时访问,我得到重复的结果!有人能建议一个简单的解决方案吗?

2 个答案:

答案 0 :(得分:2)

请考虑阅读/dev/random/dev/urandom。它们具有比rand()(通常只是一个简单的线性同余生成器)更高质量的随机性,并且/dev/random阻塞,直到有足够的熵构建。

答案 1 :(得分:0)

查看C ++ 11中<random>中的新功能。特别是std :: random_device。否则,一个俗气的解决方案是将pid添加到时间(NULL)。