gpt4 book ai didi

尽管有随机组件,但当我多次调用一个函数时,Python 给出相同的结果

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:45 25 4
gpt4 key购买 nike

我正在编写棒球比赛模拟。我希望能够运行多场比赛,看看不同的安打率如何影响结果。每场比赛都由“at-bats”组成,其结果来自一个随机数。

问题是,当我运行多场比赛时,每场比赛我都会得到相同的结果。

我想 Python 会记住函数的结果,并且只是使用它。我是 Python/CS 的新手,所以一直在尝试查找内存等问题,但没有找到我需要的答案。我很感激对资源的任何帮助或指导,我会很感激。谢谢

以下是简化版本,以帮助我解释问题。它只使用安打和出局,以 27 出局结束比赛。最后它循环了五场比赛。

  import random

hits = 0
outs = 0

# determine whether player (with .300 batting average) gets a hit or an out
def at_bat():
global hits
global outs
number = random.randint(0,1000)
if number < 300:
hits +=1
else:
outs += 1

# run at_bat until there are 27 outs
def game():
global hits
global outs
while outs < 27:
at_bat()
else:
print "game over!"
print hits

# run 5 games
for i in range(0,5):
game()

最佳答案

问题出在你对全局变量的使用上。

在您的 game() 第一次运行后,outs 为 27。当您再次调用 game 时,它​​仍然具有相同的值,因此您的 while 循环会立即退出。

关于尽管有随机组件,但当我多次调用一个函数时,Python 给出相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com