随机数生成器,如何获得不一样的随机数

-3 python random

我正在制作一个随机数发生器,但我不希望这些数字再次发生.所以例如

[1,2,3,4]是完美的 - [1,1,2,4]不是我想要的,因为一个数字反复出现.

我在这里看过,没有人能解决我正在寻找的问题,按照我的逻辑,这应该有效,但我不知道我做错了什么.

我是python的新手,我看到了像我这样的几个问题,但没有一个问题同样存在

import random, timeit
random_num = random.randint(1,10)
cont_randomized_num = random.randint(1,10)
tries = 0
start = timeit.default_timer()
num_guess = 0
stored_numbers = []

while cont_randomized_num != random_num:
    if cont_randomized_num == stored_numbers:
        cont_randomized_num = random.randint(1,10)
    elif cont_randomized_num != stored_numbers:
        print(num_guess)
        stored_numbers.append(cont_randomized_num)
        print(stored_numbers)
        cont_randomized_num = random.randint(1,10)
        tries +=1

print()
print()
stop = timeit.default_timer()
print(random_num)
print('Number of tries:',tries)
print('Time elapsed:',stop)
input('press ENTER to end')
Run Code Online (Sandbox Code Playgroud)

我想我没有让自己清楚.我想生成一个随机数= ANSWER我想要生成第二个数字来尝试匹配ANSWER,如果它不是ANSWER然后将它存储在某个地方.如果第二次生成第二个生成的数字并且它与第一次生成的数字相同,我希望它跳过并生成一个新的数字.保持这种状态,直到第二个生成的数字等于生成的第一个数字.


我已经弄明白了(最后)这里的代码并不复杂,与任何答案或评论无关!这就是我一直要求的.

import random
import timeit

start = timeit.default_timer()
stored_numbers = []
cont_random = random.randint(1,10)
random_num = random.randint(1,10)
times_guessed = 0

while random_num not in stored_numbers:
    if cont_random in stored_numbers:
        cont_random = random.randint(1, 10)
    elif cont_random not in stored_numbers:
        print(cont_random)
        stored_numbers.append(cont_random)
        cont_random = random.randint(1, 10)
        times_guessed += 1

print('Answer has been guessed!')
print('Stored numbers',stored_numbers)
print()
print()
stop = timeit.default_timer()
print('Time elapsed:',stop)
print('Times guessed -', times_guessed)
print('The random number:',random_num)
input('Press ENTER to exit')
Run Code Online (Sandbox Code Playgroud)

Aks*_*jan 5

使用random.sample()而不是逐个填充列表(请参阅文档):

返回从总体序列中选择的独特元素的长度列表.用于无需更换的随机抽样.

random.sample(range(10), 5)
>>>> [5, 9, 1, 6, 3]
Run Code Online (Sandbox Code Playgroud)

random.sample()需要提供一个列表(或任何可迭代的,真的)来从中选择一个子集.在这里,我给它列出了从0开始的前10个数字.

  • @TylerG.不,泰勒,这个解决方案的目的是完全取代对功能的需求:)你只想要一个独特的随机数列表?这个解决方案会直接给你. (3认同)