Ответ 1
import random
from datetime import datetime
random.seed(datetime.now())
В python и при условии, что я нахожусь в системе с случайным генератором семян, как мне получить random.seed(), чтобы вместо этого использовать системное время? (Как будто /dev/urandom не существует)
import random
from datetime import datetime
random.seed(datetime.now())
вы можете сделать
import random
import time
random.seed(time.time())
Знаете ли вы эту библиотеку: PyRandLib? См:
https://schmouk.github.io/PyRandLib/ to easily download archives versions, and
https://github.com/schmouk/PyRandLib to get access to the code.
Эта библиотека содержит множество лучших в своем классе генераторов псевдослучайных чисел, в то же время действуя так же, как и встроенная в Python библиотека, случайная (просто un-zip или un-tar загруженный архив в разделе "Lib/site-packages/'подкаталога вашего каталога Python).
Из кода и из модуля "fastrand32.py" вы получите более сложный способ подачи случайных данных с перетасованной версией текущего времени. Для вашей цели это станет следующим:
import time
import random
t = int( time.time() * 1000.0 )
random.seed( ((t & 0xff000000) >> 24) +
((t & 0x00ff0000) >> 8) +
((t & 0x0000ff00) << 8) +
((t & 0x000000ff) << 24) )
Это дает основное преимущество: за очень короткие промежутки времени исходные семена для подачи псевдослучайного генератора будут сильно отличаться между двумя последовательными вызовами.