Los mismos números aleatorios dentro de las iteraciones del bucle
En su bucle que se ejecuta 15 veces, ha invocado dh.setDoors() en cada iteración. Dentro de esta función, se llama a srand(time(0)) para iniciar la generación de números pseudoaleatorios. Sin embargo, las llamadas posteriores a rand() dentro del bucle dan como resultado valores constantes de carSetter y decider a lo largo de las 15 iteraciones.
Este comportamiento se produce porque srand(time(0)) establece la semilla para el generador de números aleatorios según en la hora actual. Dado que el bucle se ejecuta rápidamente, time(0) devuelve el mismo valor cada vez, lo que da como resultado la misma secuencia de números pseudoaleatorios.
Para solucionar este problema, se recomienda llamar únicamente a srand(time(0) )) una vez al inicio del programa, normalmente siguiendo un proceso como:
srand(time(0));
for (int i = 0; i Al realizar esta inicialización solo una vez, el generador de números pseudoaleatorios generará una secuencia única de números para cada iteración del ciclo, lo que producirá la variación esperada en los valores de carSetter y decider.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3