[C-Sharp] Random retornando sempre o mesmo valor

20/10/2016

0

Porque o System.Random está sempre retornando o mesmo valor dentro de um loop?

foreach(var dado in dados)
{
Random rnd = new Random();
dado valor = rnd.Next(1, dado.tipo);
}
Victor Machado

Victor Machado

Responder

Post mais votado

20/10/2016

Opa! Tente colocar o Random rnd = new Random() fora do for. Quando você precisa gerar mais de um número aleatório, deve reusar o objeto rnd

Jones Granatyr

Jones Granatyr
Responder

Mais Posts

20/10/2016

Lucas Campos

O Random gera pseudo números aleatórios baseado em uma seed, nesse caso você está gerando com a mesma seed vezes e vezes seguidas por estar em um loop e a cada vez que reusa o Random reseta novamente a seed.

Poderia usar a solução do Jones.

Ou ainda, você também poderia fazer:
Random r = new Random(DateTime.Now.Millisecond);
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar