我正在使用numpy.random进行蒙特卡洛模拟,在该模拟中,很小的接受/拒绝概率是可能的。尽管我正在播种RNG,但无法重现相同的随机数序列。在numpy 1.15.1的文档中说:
兼容性保证:固定的种子和固定的一系列调用 使用相同参数的“ RandomState”方法将始终产生 除取整值外,直到舍入误差为止,结果相同 不正确不正确的值将被修复,并且NumPy版本位于 修复程序将在相关文档字符串中注明。 扩展现有参数范围并添加新参数 只要先前的行为保持不变,就可以使用这些参数。
首先,不正确的值表示什么?第二,舍入错误如何处理?价值观不是总是以完全相同的方式四舍五入吗?即使提供了种子,我的代码是否也可能没有完全确定性?我确定种子不会在其他地方重置,因为我将RNG对象作为参数提供给每个函数。
编辑:事实证明我在仿真中使用set()。我相信这就是我缺乏确定性的地方。