python - 在 Python/Numpy 中冻结或复制当前的 RandomState
问题描述
我尝试在 Python 中为2048游戏实现 Multi-Step-Player,它通过计算多个步骤中每个移动的最大分数来选择最佳移动。在每一步中,游戏都会在棋盘上随机生成一个新图块。我用np.random.RandomState
这个。
问题:玩家模拟了几步以获得最佳移动后,随机状态发生了变化,由于生成的瓷砖不同,实际得分与预测的不同。
我的想法是在模拟下一步之前存储当前的 RandomState 并在之后恢复它,以便生成的图块相同。据我了解, RandomState 只是一个指针,但我还没有找到任何方法来复制或存储它。
有任何想法吗?谢谢!
解决方案
该RandomState
对象具有方法get_state()
,并且set_state()
- 只需使用这些方法:
state = np.random.get_state()
... # Do some simulations
np.random.set_state(state)
推荐阅读
- c++ - 如何使用 SetWindowsHookEx 捕获 Chrome 中的特定小部件?
- eclipse-plugin - javafx 11 找不到调用它的主类
- node.js - Node.js 控制台“UI”和 I/O 控制
- php - 一会儿比较和$i++
- c++ - 如何在 C++ 中声明固定大小长度的字符串?
- reactjs - 如何使用 react-moment 库格式化日期时间
- bison - 如何在 yacc 中使用递归来打印 AST?
- python - 无法使用 BeautifulSoup 和 Python 从高分辨率网页获取图像
- java - 将字符串值转换为按钮名称
- ruby - 在最新的 VScode 中运行 Minitest - 显示 Ansi 颜色代码