Compreendendo números aleatórios consistentes em iterações
No trecho de código fornecido, observa-se que os números aleatórios gerados em uma iteração de loop permanecem consistentes. Especificamente, as variáveis 'carSetter' e 'decider' mantêm os mesmos valores ao longo de 15 iterações, apesar do loop ter como objetivo gerar valores únicos.
Esse comportamento surge devido à colocação de srand(time(0)) dentro do loop . Determina a sequência de números pseudoaleatórios retornados em chamadas subsequentes para Rand(). O problema está no fato de que time(0) geralmente retorna o mesmo valor durante a execução do loop, o que leva à geração de uma série consistente de números aleatórios.
Para corrigir esse problema e garantir a verdadeira aleatoriedade, ele é crucial mover a chamada inicial para srand(time(0)) fora do loop. Ao fazer isso, você inicializa o gerador de números aleatórios apenas uma vez, garantindo que a sequência de números aleatórios varie significativamente entre as iterações. O código a seguir demonstra essa correção:
srand(time(0)); // Called once at the program's start for (int i = 0; iEsta modificação permite que o loop gere números aleatórios distintos com cada iteração conforme pretendido. Observe que é desnecessário chamar srand() dentro do loop, pois o gerador de números pseudoaleatórios continuará a produzir valores únicos até que você o redefina explicitamente com outra chamada para srand().
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