我正在使用srand(time(NULL));生成随机种子。
问题是,我正在向LINUX集群提交30多个相同的作业。如果我一次提交一个,一切都很好,但当然我更喜欢使用批处理作业一次提交所有30个。更容易,更快捷。问题是,然后几批工作似乎都完全同时访问,我得到重复的结果!有人能建议一个简单的解决方案吗?
答案 0 :(得分:2)
请考虑阅读/dev/random
或/dev/urandom
。它们具有比rand()
(通常只是一个简单的线性同余生成器)更高质量的随机性,并且/dev/random
阻塞,直到有足够的熵构建。
答案 1 :(得分:0)
查看C ++ 11中<random>
中的新功能。特别是std :: random_device。否则,一个俗气的解决方案是将pid添加到时间(NULL)。