En python, et en supposant que je suis sur un système qui a un générateur de graines aléatoire, comment puis-je obtenir random.seed () pour utiliser l'heure système à la place? (Comme si/dev/urandom n'existait pas)
import random
from datetime import datetime
random.seed(datetime.now())
tu peux faire
import random
import time
random.seed(time.time())
Connaissez-vous cette bibliothèque: PyRandLib? Voir:
https://schmouk.github.io/PyRandLib/ to easily download archives versions, and
https://github.com/schmouk/PyRandLib to get access to the code.
Cette bibliothèque contient plusieurs des meilleurs générateurs de nombres pseudo-aléatoires de sa catégorie tout en agissant exactement comme la bibliothèque Python "intégrée" aléatoire (il suffit de décompresser ou de décompresser le fichier téléchargé) archive dans le sous-répertoire 'Lib/site-packages /' de votre Python).
À partir du code et du module 'fastrand32.py', vous obtiendrez un moyen bien plus sophistiqué d'alimenter au hasard avec une version mélangée de l'heure actuelle. Pour vous, cela deviendrait:
import time
import random
t = int( time.time() * 1000.0 )
random.seed( ((t & 0xff000000) >> 24) +
((t & 0x00ff0000) >> 8) +
((t & 0x0000ff00) << 8) +
((t & 0x000000ff) << 24) )
Cela fournit un avantage principal: pendant de très courtes périodes, les graines initiales pour alimenter le générateur pseudo-aléatoire seront extrêmement différentes entre deux appels successifs.