[C#] Números aleatórios (Random)
Em algumas situações precisamos fazer o uso de números aleatórios para o correto funcionamento do aplicativo que estamos desenvolvendo. Um lançamento de dados por exemplo. Você nunca saberá qual lado irá cair, tudo depende do fator sorte. Mas como simular isso em C#? Para isso utilizamos a classe Random.
A classe Random gera números pseudo-aleatórios em igual probabilidade através de um algorítimo de cálculos complexos e depende de um valor de propagação para a criação de seus números. Este valor também é conhecido como semente, ou seed, sua tradução em inglês. Dizemos que estes números são pseudo-aleatórios por que se a mesma semente for fornecida, a mesma sequência de números será criada. Então como a classe resolve este problema? Simples. Ou passamos este valor de semente como parâmetro em seu construtor ou deixamos que a própria classe utilize o tempo para obter este número. Assim a cada segundo um novo seed e uma nova sequência aleatória será criada. É importante lembrar que a cada instância de Random, uma nova sequência será produzida. Para melhor desempenho, crie uma instância para gerar muitos números ao longo do tempo, em vez de criar um novo Random para gerar um número aleatório repetidamente.
Para acessarmos nossa lista de números, utilizamos o método Next que retorna nosso inteiro não negativo com o valor máximo definido pela constante de System, Int32.MaxValue (2.147.483.647). O método Next também retorna números aleatórios entre uma valor máximo e um valor mínimo. Por exemplo, considere um sorteio entre 100 pessoas com bilhetes numerados de 1 a 100 respectivamente. Não seria nada elegante termos o bilhete 103855485 sorteado. Então criamos o intervalo: rnd.Next(1, 101).
static void Main(string[] args)
{
// Criar um objeto aleatório</div>
// Random rnd = new Random ();
// Criar um objeto aleatório com uma semente com um grau de pseudoaleatória
Random rnd = new Random (DateTime.Now.Millisecond);
// Gerando um número aleatório qualquer
Console.WriteLine(rnd.Next().ToString());
// Gerando um número aleatório entre 50 e 100 (não inclui o ultimo valor [100])
Console.WriteLine(rnd.Next(50,100).ToString());
// Gerando um número aleátório entre 0 e 100
Console.WriteLine(rnd.Next(100).ToString());
// Aguarda até que uma tecla seja pressionada
Console.ReadKey();
}
Abraços, espero que ajudem muita gente
CategoriasC#
C#, Números aleatórios, Random
ai
é vc que vai dar aula no Colégio Estadual José Leite Lopes
eu sou aluno de lá
do curso de programação
qualquer coisa entrar em contato
alanjonesmelo@yahoo.com.br (MSN)
Ola amigo, não sou eu não… eu acho que é o Cleber Tavares Jr. que vai dar aula para você.
Abraços, foi um prazer.
Nossa valeuu mesmo eu estava querendo saber como gerar um numero aleatorio, vc tirou todas as minhas dúvidas. Quando postará mais coisas sobre C#?
até++…flw…
Olá amigo, por nada, que bom que os artigos estão te ajudando. Assim que possível vou tentar escrever mais artigos sobre C#. Gostaria de saber algo em específico ?
Abraços,
Por favor, como eu faço para que os valores quando eu faço o random não seja iguais?
Amigo, sua resposta esta neste tutorial.