我试图创建一个彩票循环,当随机生成的数字与中奖数字匹配时,循环停止。但过了一段时间我就明白了
---------- FINISHED ----------
exit code: -1073741571 status: 1
import sys
import random
sys.setrecursionlimit(1500000)
lotteryWinner = []
lotteryRandom = []
for i in range(6):
number = random.randint(1,50)
while number in lotteryWinner:
number = random.randint(1,50)
lotteryWinner.append(number)
lotteryWinner.sort()
print(lotteryWinner)
def main():
if len(lotteryRandom)>5:
lotteryRandom.clear()
for i in range(6):
number = random.randint(1,50)
while number in lotteryRandom:
number = random.randint(1,50)
lotteryRandom.append(number)
lotteryRandom.sort()
print(lotteryRandom)
if lotteryWinner != lotteryRandom:
main()
if lotteryWinner == lotteryRandom:
print('You win')
main()
您收到的退出代码表明程序确实递归到了提供的限制,但是达到了最大递归次数。通常还需要提供螺纹极限。但由于该程序是基于随机数生成的,它可能只是在找到匹配列表的某段时间才起作用。然而,重要的是要了解你处理的概率有多小。您正在尝试匹配两个列表中的5个随机数,其中包括:
为了让机会变得更好,你可以做的一件事是
输出:
为了提高机会,随机整数生成的范围已经缩小,程序只检查生成的数字是否在生成的数字的初始列表中。您可以增加随机数生成的范围,以使获胜更加罕见
相关问题 更多 >
编程相关推荐