Início > C# > [C#] Números aleatórios (Random)

[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 SystemInt32.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# Tags:, ,
  1. Alan Jones
    04/17/2010 às 2:10 pm | #1

    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)

    • Kleber Andrade
      04/17/2010 às 2:25 pm | #2

      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.

  2. Fevial
    12/04/2010 às 6:53 pm | #3

    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…

    • Kleber Andrade
      12/06/2010 às 8:12 am | #4

      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,

  3. Vinicius Kendi Takeushi
    03/17/2011 às 10:13 am | #5

    Por favor, como eu faço para que os valores quando eu faço o random não seja iguais?

    • Kleber Andrade
      03/20/2011 às 9:49 pm | #6

      Amigo, sua resposta esta neste tutorial.

  1. Nenhum trackbacks ainda.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Join 29 other followers