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

问题描述 投票:-3回答:3

要求:我需要在玩500轮的游戏中执行任务T,N次。

我有一个循环,运行某些游戏相关的任务500次。在此,我想随机执行任务T,N次。此外,N <500。

如何实现这一目标?

我知道如何在循环中执行T次,N次。但是,我想在500回合的游戏中随机化并执行N次。

python reinforcement-learning
3个回答
0
投票

当然,我假设你想要在你的500轮中正确分配你的N次执行T,并且每次执行都是不同的。

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

import random

roundNb = 500
N = 10

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

如果让这个任务完全执行N次很重要,那么最好生成N个不同的随机数<500并使用它们来确定你的任务是否应该在这一轮执行。

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()

0
投票

有什么问题?只需在循环中实现随机化:

# Very simple example

from random import randint
for x in range(500):
    for y in range(randint(0,500)):
        for z in range(randint(0,y)):
            # Do something

0
投票

在你的500循环内。不要忘记随机导入

for i in range (random.randrange(500)):
    your T task
© www.soinside.com 2019 - 2024. All rights reserved.