"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que meus números aleatórios são iguais nas iterações de loop?

Por que meus números aleatórios são iguais nas iterações de loop?

Publicado em 2024-11-12
Navegar:746

Why are My Random Numbers the Same Within Loop Iterations?

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.

Tutorial mais recente Mais>

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