Python 如何在运行M次的循环中随机执行N次任务?

Python 如何在运行M次的循环中随机执行N次任务?,python,reinforcement-learning,Python,Reinforcement Learning,要求:我需要在一个500回合的游戏中执行一个任务T,N次 我有一个循环,可以运行特定的游戏相关任务500次。在此范围内,我想随机执行任务T,N次。还有,有什么问题吗?只需在循环中实现随机化: #非常简单的示例 从随机导入randint 对于范围(500)内的x: 对于范围内的y(randint(0500)): 对于范围内的z(randint(0,y)): #做点什么 在500人的循环中。别忘了做随机导入 for i in range (random.randrange(500)): yo

要求:我需要在一个500回合的游戏中执行一个任务T,N次


我有一个循环,可以运行特定的游戏相关任务500次。在此范围内,我想随机执行任务T,N次。还有,有什么问题吗?只需在循环中实现随机化:

#非常简单的示例
从随机导入randint
对于范围(500)内的x:
对于范围内的y(randint(0500)):
对于范围内的z(randint(0,y)):
#做点什么

在500人的循环中。别忘了做随机导入

for i in range (random.randrange(500)):
    your T task

当然,我假设你希望你的T的N次执行正确地分布在你的500轮中,并且每次执行都是不同的

如果你对N的近似值满意,那么就地解决方案是每轮运行任务的概率为N/500

import random

roundNb = 500
N = 10

for i in range(roundNb):
  if random.random() < N / roundNb:
    T()

所以您希望执行任务
N
次,并且
N
执行应该随机分布在500次迭代中?是的,@qcampos提供了我想要的。
import random

roundNb = 500
N = 10

# random.sample takes N elements of range(roundNb), so N valid roundNumbers
# Convert it to a set so `i in doTaskOn` runs in constant time
doTaskOn = set(random.sample(range(roundNb), N))

for i in range(roundNb):
  if i in doTaskOn:
    T()