我一直对随机数很感兴趣,但是当我试图在循环中生成随机数时,就像下面的代码一样
success = 0
times = 0
for i in range(0,10):
while success == 0:
numbers = [0,0,0,0,0,0,0,0,0,0]
for j in range(0,9):
x = int(random.randint(0,9))
numbers[x] = 1
count = numbers.count(1)
if count == 1:
success = 1
else:
times += 1
print(times)
print(numbers)
输出:
17160
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
17160
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
17160
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
17160
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
17160
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
等等我试着看一看它必须尝试的平均次数,但每次都得到相同的结果会毁掉它。有没有一种方法可以使用 rand
函数每次获取不同的随机数?
1条答案
按热度按时间bzzcjhmw1#
您的代码将重复,直到10个随机整数都设置在相同的位置
numbers
. 那就定了success
然后你再试一次。问题是你永远不会明白success
所以while success == 0:
不正确,循环不运行。解决办法是重新设置success
在外环。