Ler em inglês

Compartilhar via


Random Classe

Definição

Representa um gerador de número pseudoaleatório, que é um algoritmo que produz uma sequência de números que atendem a certos requisitos estatísticos de aleatoriedade.

C#
public class Random
C#
[System.Serializable]
public class Random
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Random
Herança
Random
Atributos

Exemplos

O exemplo a seguir cria um único gerador de número aleatório e chama seus NextBytesmétodos , Nexte NextDouble para gerar sequências de números aleatórios em intervalos diferentes.

C#
// Instantiate random number generator using system-supplied value as seed.
var rand = new Random();

// Generate and display 5 random byte (integer) values.
byte[] bytes = new byte[5];
rand.NextBytes(bytes);
Console.WriteLine("Five random byte values:");
foreach (byte byteValue in bytes)
    Console.Write("{0, 5}", byteValue);
Console.WriteLine();

// Generate and display 5 random integers.
Console.WriteLine("Five random integer values:");
for (int ctr = 0; ctr <= 4; ctr++)
    Console.Write("{0,15:N0}", rand.Next());
Console.WriteLine();

// Generate and display 5 random integers between 0 and 100.
Console.WriteLine("Five random integers between 0 and 100:");
for (int ctr = 0; ctr <= 4; ctr++)
    Console.Write("{0,8:N0}", rand.Next(101));
Console.WriteLine();

// Generate and display 5 random integers from 50 to 100.
Console.WriteLine("Five random integers between 50 and 100:");
for (int ctr = 0; ctr <= 4; ctr++)
    Console.Write("{0,8:N0}", rand.Next(50, 101));
Console.WriteLine();

// Generate and display 5 random floating point values from 0 to 1.
Console.WriteLine("Five Doubles.");
for (int ctr = 0; ctr <= 4; ctr++)
    Console.Write("{0,8:N3}", rand.NextDouble());
Console.WriteLine();

// Generate and display 5 random floating point values from 0 to 5.
Console.WriteLine("Five Doubles between 0 and 5.");
for (int ctr = 0; ctr <= 4; ctr++)
    Console.Write("{0,8:N3}", rand.NextDouble() * 5);

// The example displays output like the following:
//    Five random byte values:
//      194  185  239   54  116
//    Five random integer values:
//        507,353,531  1,509,532,693  2,125,074,958  1,409,512,757    652,767,128
//    Five random integers between 0 and 100:
//          16      78      94      79      52
//    Five random integers between 50 and 100:
//          56      66      96      60      65
//    Five Doubles.
//       0.943   0.108   0.744   0.563   0.415
//    Five Doubles between 0 and 5.
//       2.934   3.130   0.292   1.432   4.369

O exemplo a seguir gera um inteiro aleatório que ele usa como um índice para recuperar um valor de cadeia de caracteres de uma matriz.

C#
Random rnd = new();
string[] malePetNames = [ "Rufus", "Bear", "Dakota", "Fido",
                        "Vanya", "Samuel", "Koani", "Volodya",
                        "Prince", "Yiska" ];
string[] femalePetNames = [ "Maggie", "Penny", "Saya", "Princess",
                          "Abby", "Laila", "Sadie", "Olivia",
                          "Starlight", "Talla" ];

// Generate random indexes for pet names.
int mIndex = rnd.Next(malePetNames.Length);
int fIndex = rnd.Next(femalePetNames.Length);

// Display the result.
Console.WriteLine("Suggested pet name of the day: ");
Console.WriteLine($"   For a male:     {malePetNames[mIndex]}");
Console.WriteLine($"   For a female:   {femalePetNames[fIndex]}");

// The example displays output similar to the following:
//       Suggested pet name of the day:
//          For a male:     Koani
//          For a female:   Maggie

Comentários

Para obter mais informações sobre essa API, consulte Comentários de API complementares para Random.

Notas aos Herdeiros

No .NET Framework 2.0 e posterior, o comportamento dos Next()métodos , Next(Int32, Int32)e NextBytes(Byte[]) foi alterado para que esses métodos não chamem necessariamente a implementação de classe derivada do Sample() método. Como resultado, as classes derivadas desse Random destino .NET Framework 2.0 e posteriores também devem substituir esses três métodos.

Notas aos Chamadores

Não há garantia de que a implementação do gerador de números aleatórios na Random classe permaneça a mesma em versões principais do .NET. Como resultado, você não deve assumir que a mesma semente resultará na mesma sequência pseudo-aleatória em diferentes versões do .NET.

Construtores

Random()

Inicializa uma nova instância da classe Random usando um valor de semente padrão.

Random(Int32)

Inicializa uma nova instância da classe Random, usando o valor de semente especificado.

Propriedades

Shared

Fornece uma instância thread-safe Random que pode ser usada simultaneamente de qualquer thread.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetItems<T>(ReadOnlySpan<T>, Int32)

Cria uma matriz preenchida com itens escolhidos aleatoriamente do conjunto de opções fornecido.

GetItems<T>(ReadOnlySpan<T>, Span<T>)

Preenche os elementos de um intervalo especificado com itens escolhidos aleatoriamente do conjunto de opções fornecido.

GetItems<T>(T[], Int32)

Cria uma matriz preenchida com itens escolhidos aleatoriamente do conjunto de opções fornecido.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Next()

Retorna um inteiro aleatório não negativo.

Next(Int32)

Retorna um número inteiro aleatório não negativo menor que o máximo especificado.

Next(Int32, Int32)

Retorna um inteiro aleatório que está dentro do intervalo especificado.

NextBytes(Byte[])

Preenche os elementos de uma matriz de bytes especificada com números aleatórios.

NextBytes(Span<Byte>)

Preenche os elementos de um intervalo de bytes especificado com números aleatórios.

NextDouble()

Retorna um número de ponto flutuante aleatório maior ou igual a 0,0 e menor que 1.0.

NextInt64()

Retorna um inteiro aleatório não negativo.

NextInt64(Int64)

Retorna um número inteiro aleatório não negativo menor que o máximo especificado.

NextInt64(Int64, Int64)

Retorna um inteiro aleatório que está dentro do intervalo especificado.

NextSingle()

Retorna um número de ponto flutuante aleatório maior ou igual a 0,0 e menor que 1.0.

Sample()

Retorna um número de ponto flutuante aleatório entre 0.0 e 1.0.

Shuffle<T>(Span<T>)

Executa um ordem aleatória in-loco de um intervalo.

Shuffle<T>(T[])

Executa um embaralhamento in-loco de uma matriz.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0