Как я могу узнать случайное число, сгенерированное в python?

Вот мой код. Я только начинаю изучать Python. Я пытаюсь создать случайное число и угадать его. Если ответ от случайного импорта randint г = вход ( «Что максимальное число , которое вы хотите , чтобы я догадываюсь?» ) Выбор = ф «randint (1, {г})» , если выбор == 7 : печать ( «повезло» ) else : print ( "unlucky" ) , тогда моя программа будет печатать (выбор) «повезло». Если нет, то «неудачно». Я пытаюсь запустить мой простой код много раз. Каждый раз я получаю «неудачу». Есть ли кто-нибудь, кто знает, есть ли проблема в моем алгоритме или где-то еще. Кстати, я действительно хочу знать, как я мог узнать, что конкретно представляет собой число, случайно генерируемое в python? Мне просто интересно, является ли тот же самый номер, который создается каждый раз, тот же или нет.

10

python,python-3.x,random,numbers,

0

Ответов: choice


1

Причина, по которой вам не повезет каждый раз, не имеет никакого отношения к случайности.

Попробуйте запустить код в отладчике или добавить его 7к тому, что вы получаете.

Если вы введете, скажем randint, тогда 10строка '10'. Эта строка никогда не будет равна числу 7.

Чтобы выполнить эту работу, вам нужно изменить две вещи:

  • На самом деле вызывайте , вместо того , чтобы создавать строку, которая выглядит как исходный код для ее вызова.choice = randint(1, int(z))
  • Назовите это на число, например 10, не на строку, например seed.

Так:

os.urrandom

Как только вы исправите это, случайные числа будут случайными. Технически они создаются PRNG (генератором псевдослучайных чисел), фантастическим алгоритмом, который берет кучу информации о состоянии и выплескивает последовательность чисел, которые выглядят случайными, но на самом деле предсказуемы из этого состояния. Но, как объясняется , по умолчанию, семена Python, сгенерированные генератором (который на большинстве платформ является другим PRNG, но сам заселен любыми фактическими случайными данными).from random import randint, seed seed(42) z = input("What's the max number you want me to guess?") choice = randint(1, int(z)) print(choice)2

Если вы хотите, чтобы последовательность повторялась, для тестирования вы можете вызвать seedфункцию вручную. Например, эта программа:

print

a € | даст вам 2каждый раз, когда вы просите случайное число от 1 до 10.


0

Если вы хотите проверить, угадывается ли тот же номер случайным образом, просто используйте print, чтобы проверить его. Вот:

from random import *
z = int(input("What's the max number you want me to guess?"))
choice = randint(1,z)
print("The number that I guessed:",choice)
if choice == z:
    print("I gussed it! I got lucky.")
else:
    print("I couldn't guess it, I got unlucky.")
питон, питон-3.x, случайные, цифры,
Похожие вопросы