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

时间:2017-03-26 16:21:01

标签: python python-3.x

这是我的作业:

  

写一个函数,重复生成[0,n [范围内的随机整数,直到两个连续生成的数字相同。然后返回生成的数字。

这是我做的:

def function(n):
    for i in range(100):
        random.randint(0,n)

并输出一百个数字,但是当它检测到两个相同的数字时我需要它停止,这是怎么做的?

2 个答案:

答案 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)

repl.it

上查看它

答案 1 :(得分:0)

要在不指定ab奇怪值的情况下执行此操作,请使用无限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)