J'ai un programme assez gros, où j'utilise les fonctions du module random
dans différents fichiers. J'aimerais pouvoir placer la graine au hasard une fois, à un endroit donné, pour que le programme retourne toujours les mêmes résultats. Cela peut-il même être réalisé dans python
?
Le module principal python qui est exécuté doit _import random
_ et appelle random.seed(n)
- il est partagé entre toutes les autres importations de random
à la condition d'un autre emplacement. ne réinitialise pas la graine.
Le commentaire de zss doit être mis en évidence:
Une autre chose à laquelle les gens doivent faire attention: si vous utilisez numpy.random, vous devez utiliser numpy.random.seed () pour définir la graine. L'utilisation de random.seed () ne définira pas la valeur initiale des nombres aléatoires générés à partir de numpy.random. Cela m'a confondu pendant un moment. -zss
Au début de votre application, appelez random.seed(x)
en vous assurant que x est toujours identique. Cela garantira que la séquence de nombres pseudo aléatoires sera la même à chaque exécution de l'application.
Jon Clements répond à peu près à ma question. Cependant, ce n'était pas le vrai problème: il s'avère que le caractère aléatoire de mon code est dû au numpy.linalg SVD car il ne produit pas toujours les mêmes résultats pour les matrices mal conditionnées !!
Veillez donc à vérifier cela dans votre code, si vous rencontrez les mêmes problèmes!