如何处理这个随机数Python作业?
这是我的作业: 编写一个函数,重复生成[0,n]范围内的随机整数,直到两个连续生成的数字相同。然后返回生成的数字的数量 以下是我所做的:如何处理这个随机数Python作业?,python,python-3.x,Python,Python 3.x,这是我的作业: 编写一个函数,重复生成[0,n]范围内的随机整数,直到两个连续生成的数字相同。然后返回生成的数字的数量 以下是我所做的: def function(n): for i in range(100): random.randint(0,n) 这会输出一百个数字,但是当它检测到两个相同的数字时,我需要它停止,这是怎么做到的?为此,您可以使用两个名称:一个用于新生成的随机数,一个用于前一个 您还需要以不同的方式创建循环,因为您不知道在获得匹配之前需要迭代多长时间
def function(n):
for i in range(100):
random.randint(0,n)
这会输出一百个数字,但是当它检测到两个相同的数字时,我需要它停止,这是怎么做到的?为此,您可以使用两个名称:一个用于新生成的随机数,一个用于前一个 您还需要以不同的方式创建循环,因为您不知道在获得匹配之前需要迭代多长时间:
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)
查看它在上运行要在不指定
a
和b
奇怪值的情况下运行,请在循环时使用无限,然后在值相同时使用中断
。这类似于@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)
欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。并在此处应用。StackOverflow不是编码或教程服务。@trincot:是的,我刚刚注意到。在这种情况下,您只需保存一个存储先前生成的变量。使用两个变量,一个用于最新的随机数,另一个用于其他r代表上一个。非常有魅力,谢谢你的帮助!