将某个RNG的实例(如std::mt19937
)声明并播种为全局变量是危险/不良形式吗?这样,任何使用随机数的函数调用对于给定的种子基本上是同步的。也就是说,对于给定的种子,我的整个程序将以相同的方式运行。除了潜在的错误,这是否也会牺牲任何随机性?
更好的替代方法是在main()中声明它然后只是将引用传递给它以便在函数中进行任何后续使用吗?
提前感谢您的帮助!
答案 0 :(得分:1)
全球RNG不会牺牲任何随机性,但它就像使用任何其他全局变量一样:
传统观点认为全局和单身人士引发的问题多于他们解决的问题,但你必须自己决定如何平衡你的计划。