@naruto_hokagi

Для чего нужен random.seed(x) python?

Как я понял он сохраняет числа из random.randint постоянными, т.е если запустить цикл и выбирать цифры рандомно из промежутка, то перед каждым новым запуском программы цифры не изменятся. Ну вот по какому принципу он это делает я что-то не пойму.
  • Вопрос задан
  • 21771 просмотр
Пригласить эксперта
Ответы на вопрос 2
LazyTalent
@LazyTalent
Data Engineer, Freelancer
Все дело в том, что в Питоне, как и в любом другом языке, используется т.н. генератор псевдо случайных чисел. Т.е. random выдает не случайное число, а число которое вычисляется алгоритмом на осное другого числа, по умолчанию это текущее время. random.seed позволяет изменить число, которое передается в random для генерации случайного числа, а т.к. "случайные" числа выдаются одним и тем же алгоритмом, то при одинаковом параметре в random.seed будут и одинаковые "случайные" числа.
>>> import random
>>> ['%.2f' % random.random() for i in range(10)]
['0.21', '0.66', '0.18', '0.48', '0.86', '0.46', '0.48', '0.04', '0.67', '0.37']
>>> 
>>> ['%.2f' % random.random() for i in range(10)]
['0.90', '0.68', '0.02', '0.90', '0.63', '0.06', '0.22', '0.14', '0.97', '0.68']
>>> 
>>> random.seed(5)
>>> ['%.2f' % random.random() for i in range(10)]
['0.62', '0.74', '0.80', '0.94', '0.74', '0.92', '0.03', '0.47', '0.94', '0.65']
>>> 
>>> random.seed(5)
>>> ['%.2f' % random.random() for i in range(10)]
['0.62', '0.74', '0.80', '0.94', '0.74', '0.92', '0.03', '0.47', '0.94', '0.65']
Ответ написан
15432
@15432
Системный программист ^_^
random - псевдослучайный генератор случайных чисел. при помощи некоего алгоритма, он выдает последовательность чисел. настоящей случайности нет, для генерации чисел нужно некоторое начальное состояние, seed, из которого будет генерироваться вся остальная последовательность. При одинаковых seed последовательность тоже будет одинаковая.
Но seed нужен для того, чтобы при каждом запуске алгоритм выдавал разные значения (для этого вы должны подавать каждый раз разный seed).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы