Ho bisogno di generare una sequenza controllata di numeri pseudo-casuali, dato un parametro intero iniziale. Per questo sto usando la classe standard di Java Random, seminata da un parametro intero. Mi piacerebbe essere sicuro di generare la stessa sequenza tra i vari sistemi (sistema operativo, ma anche versione Java/JDK), nel prossimo futuro (e altro ancora!).Riproducibilità di numeri pseudo casuali java su sistemi e versioni?
In sintesi: Vuol Java garantire la riproducibilità/portabilità del suo pseudo-generatore di numeri casuali attraverso implementazione e versioni?
Nota: ho chiesto the exact same question for Python. Da allora ho cambiato il linguaggio di implementazione in Java ma per altri motivi.
va bene finché non si riutilizza lo stesso generatore da più thread. Ora non ottieni questo commento sbagliato: il generatore stesso è thread-safe, ma se stai generando numeri da vari thread usando lo stesso generatore, non sarai in grado di riprodurre coerentemente le chiamate dai vari thread nello stesso identico ordinare su vari sistemi (nemmeno su varie esecuzioni sullo stesso sistema). – TacticalCoder
Non sarà il caso, ma grazie per il suggerimento. Beh, per essere precisi, è possibile riprodurre la stessa sequenza in più thread usando un meccanismo di blocco adeguato, ma sono d'accordo con te che sta chiedendo dei problemi. –