Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理这个随机数Python作业?_Python_Python 3.x - Fatal编程技术网

如何处理这个随机数Python作业?

如何处理这个随机数Python作业?,python,python-3.x,Python,Python 3.x,这是我的作业: 编写一个函数,重复生成[0,n]范围内的随机整数,直到两个连续生成的数字相同。然后返回生成的数字的数量 以下是我所做的: def function(n): for i in range(100): random.randint(0,n) 这会输出一百个数字,但是当它检测到两个相同的数字时,我需要它停止,这是怎么做到的?为此,您可以使用两个名称:一个用于新生成的随机数,一个用于前一个 您还需要以不同的方式创建循环,因为您不知道在获得匹配之前需要迭代多长时间

这是我的作业:

编写一个函数,重复生成[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代表上一个。非常有魅力,谢谢你的帮助!