Навсегда установить семя в питоне - PullRequest
1 голос
/ 27 июня 2019

Я прочитал несколько вопросов, в том числе направленных на numpy.Однако я просто заинтересован в постоянной установке seed в (с) random и, следовательно, в каждом вызове генерирую одно и то же случайное float с random.random().Вот что я сделал:

import random
random.seed(2) 

Первый звонок:

random.random()
0.9560342718892494

Второй звонок:

random.random()
0.9478274870593494

Я мог бы продолжать звонить random.seed, но был бы признателен, если кто-томог бы объяснить, что происходит или что именно я могу сделать, чтобы установить seed один раз и генерировать одно и то же случайное число с плавающей точкой при каждом вызове random.random().

В настоящее время я пытаюсь выучить python, поэтому мои извинения, еслиэто очень простой и уже есть ответ.Я прочитал несколько вопросов перед публикацией.

1 Ответ

3 голосов
/ 27 июня 2019

Как указано в комментариях @Andrej Kesely и @buzjwa, установка seed не гарантирует, что вы получите одно и то же значение при каждом вызове.Что действительно происходит, так это то, что мы устанавливаем случайное состояние, которое затем определяет последовательность генерируемых случайных чисел.

Когда мы в первый раз вызываем random.random(), то, что мы действительно делаем, это запускаем процесс случайного числагенерация и возврат первого значения в этой последовательности чисел.

То есть, когда мы устанавливаем random.seed(2), каждый раз, когда мы следуем этому вызову random.random(), мы возвращаем 0.9560342718892494, которое является первым значением в этой последовательности чисел.Последующие random.random() вызовы возвращают следующие значения в последовательности согласно соответствующему номеру вызова.

...