我在几个地方使用随机数,并且通常在需要时构建一个随机数生成器。目前我使用 Marsaglia Xorshift 算法用当前系统时间播种它。现在我对这个策略有些怀疑:如果我使用多个生成器,那么生成器之间的数字的独立性(随机性)取决于种子(相同的种子相同的数字)。因为我使用时间(ns)作为种子,并且因为这个时间改变了这个工作,但我想知道是否只使用一个单一的生成器会不会更好,例如让它作为一个单例可用。这会增加随机数的质量吗?
编辑:不幸的是,c++11 还不是一个选项
编辑:更具体地说:我并不是说单例可以提高随机数质量,而是只使用一个生成器并播种的事实。否则,我必须确保不同生成器的种子彼此独立(随机)。极端的例子:我用完全相同的数字播种了两个生成器->它们之间没有随机性