这是我的作业:
写一个函数,重复生成[0,n [范围内的随机整数,直到两个连续生成的数字相同。然后返回生成的数字。
这是我做的:
def function(n):
for i in range(100):
random.randint(0,n)
并输出一百个数字,但是当它检测到两个相同的数字时我需要它停止,这是怎么做的?
答案 0 :(得分:1)
为此你可以使用两个名字:一个用于新生成的随机数,一个用于前一个。
你还需要以不同的方式进行循环,因为你不知道在获得匹配之前需要多长时间迭代:
import random
def function(n):
a = -2
b = -1
i = 0
while a != b:
a, b = random.randint(0,n), a
i += 1
return i
# Sample run
times = function(400)
print (times)
上查看它
答案 1 :(得分:0)
要在不指定a
和b
奇怪值的情况下执行此操作,请使用无限while
循环,然后在值相同时使用break
。这类似于@ trincot的解决方案:
import random
def function(n):
a = None
i = 0
while True:
a, b = random.randint(0,n), a
i += 1
if a == b:
return i
# Sample run
times = function(400)
print(times)