Tengo un bucle for
que se ejecuta 15 veces, con dh.setDoors()
en cada iteración.Los mismos números aleatorios cada iteración de bucle
Lo que setDoors
hace es llamar al srand(time(0))
, luego cada vez que se necesita un número aleatorio usará, por ejemplo, carSetter = rand()%3+1
. Alternativamente, puede usar decider = rand()%2+1
.
Ahora, normalmente decider
y carSetter
se utilizan de diferentes maneras, pero sospechaba un problema y lo hizo imprimir carSetter
y decider
en cada iteración. Esto es lo que salió:
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
etc...
Los valores '1' y '2' cambio al ejecutarlo varias veces, pero siguen siendo los mismos a lo largo de las 15 veces.
Dado que el ciclo se ejecuta 15 veces diferentes, ¿no deberían carSetter
y decider
imprimir un número aleatorio diferente en cada iteración?
Cuando no tengo srand(time(0))
, funciona como se esperaba, pero no hay un conjunto de semillas, por lo que es la misma secuencia de números "aleatorios" cada vez, entonces ¿es probable que sea un problema con la semilla?
La siembra se debe hacer * una vez *, nunca. Lea sobre cómo funcionan los generadores de números pseudoaleatorios, y probablemente sea bueno aprender también alguna teoría de probabilidades mientras lo hace. –
Solo estoy usando srand una vez en setDoors, setDoors solo se repite 15 veces. ¿El problema es que srand se repite 15 veces? – GlassZee
Sería más fácil describir la solución cuando * publique su código real *. –