J'ai un code C++ qui dépend fortement de l'échantillonnage (en utilisant rand()), mais je veux qu'il soit reproductible. Donc au début, j'initialise srand() avec une graine aléatoire et j'imprime cette graine. Je veux que les autres puissent utiliser le même code mais en initialisant srand() avec la même graine et obtenir exactement la même réponse que moi.Comment éliminer toutes les sources de hasard afin que le programme donne toujours des réponses identiques?
Mais dans quelles circonstances est-ce garanti? Je suppose que cela ne fonctionne que si les binaires sont compilés avec le même compilateur sur le même système? Quels sont les autres facteurs qui pourraient rendre la réponse différente de celle que j'ai obtenue initialement?
C'est pourquoi j'aime le code pur/la programmation fonctionnelle. – strager
Vraisemblablement, vous n'initialisez pas srand() avec une graine aléatoire? Ou bien vous êtes dans un processus infiniment récursif. –
@Neil Haha, bon point, j'utilise un mélange de clock(), time (NULL) et getpid(). – Frank