有一个带有浮点值的列表,可以不同也可以不同。如何找到此列表中最高值之一的随机选择的列表索引?
如果您对上下文感兴趣:我尝试为纸笔游戏Battleship编写求解器。我尝试计算每个字段命中的概率,然后希望求解器在最有可能的位置之一射击,这意味着检索我的可能性列表中最高可能性的索引,然后告诉游戏引擎这个索引作为我的选择。第一步已经表明它可能发生,有很多领域具有相同的可能性。在这种情况下,随机选择其中一个是有意义的(而不仅仅是总是选择第一个或类似的东西)。
有一个带有浮点值的列表,可以不同也可以不同。如何找到此列表中最高值之一的随机选择的列表索引?
如果您对上下文感兴趣:我尝试为纸笔游戏Battleship编写求解器。我尝试计算每个字段命中的概率,然后希望求解器在最有可能的位置之一射击,这意味着检索我的可能性列表中最高可能性的索引,然后告诉游戏引擎这个索引作为我的选择。第一步已经表明它可能发生,有很多领域具有相同的可能性。在这种情况下,随机选择其中一个是有意义的(而不仅仅是总是选择第一个或类似的东西)。
使用如何查找列表中最大值的所有位置来查找最大值?. 然后使用 . 从列表中随机选择一个random.choice
。
>>> m = max(a)
>>> max_pos = [i for i, j in enumerate(a) if j == m]
>>> random.choice(max_pos)