要求:我需要在玩500轮的游戏中执行任务T,N次。
我有一个循环,运行某些游戏相关的任务500次。在此,我想随机执行任务T,N次。此外,N <500。
如何实现这一目标?
我知道如何在循环中执行T次,N次。但是,我想在500回合的游戏中随机化并执行N次。
当然,我假设你想要在你的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()
有什么问题?只需在循环中实现随机化:
# 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
在你的500循环内。不要忘记随机导入
for i in range (random.randrange(500)):
your T task