me gustaría ser capaz de hacer algo como esto (obviamente no válido C++):la generación de dos secuencias independientes de números aleatorios (C++)
rng1 = srand(x)
rng2 = srand(y)
//rng1 and rng2 give me two separate sequences of random numbers
//based on the srand seed
rng1.rand()
rng2.rand()
¿Hay alguna manera de hacer algo como esto en C++? Por ejemplo, en Java puedo crear dos objetos java.util.Random con las semillas que quiero. Parece que hay un solo generador de números aleatorios globales en C++. Estoy seguro de que hay bibliotecas que ofrecen esta funcionalidad, pero de todos modos para hacerlo con solo C++?
Dado que los números devueltos por 'rand' son (pseudo-) aleatorios, ¿por qué necesita más de un generador? Obtener 2n números de un generador de números aleatorios debería dar resultados similares a obtener n números de cada uno de los dos generadores de números aleatorios. –
@James: considere una simulación de cola con una fuente de aleatoriedad que controla la llegada de nuevas tareas, y otra fuente de aleatoriedad que influye en el tiempo para completar cada tarea. Es posible que desee repetir cada experimento varias veces, replicando el escenario de "llegada de tareas", pero con diferentes estadísticas de "finalización de tareas", y que requeriría tener múltiples RNG que se pueden sembrar de forma independiente. –
@Jim: estoy de acuerdo en que podría usarse para eso. Creo que es mejor alimentar manualmente los datos "aleatorios" en lugar de confiar en el PRNG. –