J'ai un programme qui fait un usage intensif de nombres aléatoires pour décider de ce qu'il doit faire, et qui a de nombreux chemins d'exécution basés sur la sortie du PRNG. Après m'être arraché les cheveux en essayant de le déboguer, j'ai décidé de faire en sorte que tous les appels au PRNG fassent référence à la même instance Random, qui a été ensemencée avec un nombre codé en dur lors de l'instanciation. Ainsi, à chaque fois que je lance le programme, le même bug devrait apparaître. Malheureusement, j'obtiens toujours des bugs différents à chaque fois que je l'exécute (bien qu'il semble se comporter presque de la même manière).
J'ai cherché dans le code de nombreuses fois des appels manqués à Math.random() et je vous assure qu'il n'y en a pas.
Des idées ?
Editar : J'ai confirmé que les nombres générés sont les mêmes, pourtant le comportement est toujours non déterministe. Ce programme n'est pas multithreadé. Toujours complètement déconcerté.
Le PRNG se comporte donc comme prévu, mais le non-déterminisme persiste. De quelles manières le non-déterminisme peut-il être introduit par inadvertance dans un programme ?