Mesmos números aleatórios em iterações de loop
Em seu loop que é executado 15 vezes, você invocou dh.setDoors() em cada iteração. Dentro desta função, srand(time(0)) é chamado para iniciar a geração de números pseudo-aleatórios. No entanto, chamadas subsequentes para Rand() dentro do loop resultam em valores constantes de carSetter e decider ao longo de todas as 15 iterações.
Esse comportamento ocorre porque srand(time(0)) define a semente para o gerador de números aleatórios com base na hora atual. Como o loop é executado rapidamente, time(0) retorna o mesmo valor todas as vezes, resultando na mesma sequência de números pseudoaleatórios.
Para superar esse problema, é recomendado chamar apenas srand(time(0 )) uma vez no início do programa, normalmente seguindo um processo como:
srand(time(0));
for (int i = 0; i Ao realizar esta inicialização apenas uma vez, o gerador de números pseudo-aleatórios irá gerar uma sequência única de números para cada iteração do loop, produzindo a variação esperada nos valores de carSetter e decider.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3