【问题标题】:Freeze or copy current RandomState in Python/Numpy在 Python/Numpy 中冻结或复制当前的 RandomState
【发布时间】:2020-09-13 20:38:40
【问题描述】:

我尝试在 Python 中为2048 游戏实现一个多步播放器,它通过计算多个步骤中每个移动的最大分数来选择最佳移动。在每一步中,游戏都会在棋盘上随机生成一个新图块。我为此使用np.random.RandomState

问题:玩家模拟几步以获得最佳移动后,随机状态发生了变化,由于生成的瓷砖不同,实际得分与预测的不同。

我的想法是在模拟下一步之前存储当前的 RandomState 并在之后恢复它,以便生成的图块相同。据我了解,RandomState 只是一个指针,但我还没有找到任何方法来复制或存储它。

有什么想法吗?谢谢!

【问题讨论】:

    标签: python numpy random


    【解决方案1】:

    RandomState 对象具有方法 get_state()set_state() - 只需使用这些方法:

    state = np.random.get_state()
    ... # Do some simulations
    np.random.set_state(state)
    

    【讨论】:

    • 谢谢,这就是我想要的。 :)
    猜你喜欢
    • 2016-09-10
    • 2021-08-26
    • 2011-05-16
    • 1970-01-01
    • 2014-03-30
    • 2022-01-04
    • 2013-11-03
    • 2016-01-17
    • 1970-01-01
    相关资源
    最近更新 更多