python while循环点系统-运行缓慢
我必须模拟一个积分游戏,第一个得到11分并以2个净分获胜的人赢得游戏 我使用了一个函数来决定谁赢得一分python while循环点系统-运行缓慢,python,loops,while-loop,Python,Loops,While Loop,我必须模拟一个积分游戏,第一个得到11分并以2个净分获胜的人赢得游戏 我使用了一个函数来决定谁赢得一分 def simulatePoint(winProbabilityA, winProbabilityB): rNumber = random.random() if rNumber - winProbabilityA <= 0: # A wins the game return 0 elif rNumber - win
def simulatePoint(winProbabilityA, winProbabilityB):
rNumber = random.random()
if rNumber - winProbabilityA <= 0:
# A wins the game
return 0
elif rNumber - winProbabilityA > 0:
# B wins the game
return 1
这就是我认为我出错的地方,我认为while循环导致代码运行缓慢
如果他们赢了11场以上的比赛,差距大于或等于2,他们会非常乐意接受任何帮助。所以,逻辑应该是这样的
if (pointsA >= 11) and (pointsA - pointsB >= 2):
...
elif (pointsB >= 11) and (pointsB - pointsA >= 2):
...
如果他们赢了超过11场比赛,差距变得大于或等于2会怎样。所以,逻辑应该是这样的
if (pointsA >= 11) and (pointsA - pointsB >= 2):
...
elif (pointsB >= 11) and (pointsB - pointsA >= 2):
...
我认为你的代码运行无限 考虑:
pointsA
和pointsB
分别达到10
和10
。现在,无论哪个玩家获得下一个积分,都不会达到终止条件,因为pointsA
和pointsB
都不会同时达到11
和2。这将创建一个无限循环
您可能需要检查点sa>=11
和点sb>=11
而不是A==11
和B==11
看起来是四个人比我赢了一点-他得到了我的选票。我认为你的代码运行无限 考虑:
pointsA
和pointsB
分别达到10
和10
。现在,无论哪个玩家获得下一个积分,都不会达到终止条件,因为pointsA
和pointsB
都不会同时达到11
和2。这将创建一个无限循环
您可能需要检查点sa>=11
和点sb>=11
而不是A==11
和B==11
看起来四人队赢了我一点-他得到了我的选票。它会无限期地运行吗?“运行缓慢”在什么意义上?需要很长时间才能达到11点?输出结果需要很长时间result@Bull更具体地说,它需要一个无穷大。它是无限大的吗?在什么意义上说是“慢行”?需要很长时间才能达到11点?输出结果需要很长时间result@Bull更具体地说,它需要一个无穷大。啊,我的错,忘了想那个。为什么代码在某些情况下比在其他情况下花费的时间更长是有道理的other@Bull酷。:)请考虑接受这个答案,如果它能帮助你“下注者”,请你告诉我这个答案有什么不对吗?为什么代码在某些情况下比在其他情况下花费的时间更长是有道理的other@Bull酷。:)请考虑接受这个答案,如果它能帮助你“下注者”你能告诉我这个答案有什么问题吗?