我有一个程序,它大量使用随机数来决定它需要做什么,并且有许多基于 PRNG 输出的执行路径。在尝试调试它之后,我决定让所有 PRNG 调用都引用同一个 Random 实例,该实例在实例化时已被植入一个硬编码数字。这样,每次我运行程序时,都会出现相同的错误。不幸的是,每次运行它时我仍然会遇到不同的错误(尽管它的行为似乎几乎相同)。
我已经多次搜索代码以查找对 Math.random() 的任何未接来电,我向您保证没有。
有任何想法吗?
编辑:我已经确认生成的数字是相同的,但行为仍然是不确定的。这个程序不是多线程的。还是完全糊涂了。
所以 PRNG 的行为符合预期,但我仍然有不确定性。有哪些方式可能会无意中将非确定性带入程序中?