Číst v angličtině

Sdílet prostřednictvím


Random Třída

Definice

Představuje pseudonáhodný generátor čísel, což je algoritmus, který vytváří posloupnost čísel, které splňují určité statistické požadavky na náhodnost.

public class Random
[System.Serializable]
public class Random
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Random
Dědičnost
Random
Atributy

Příklady

Následující příklad vytvoří jeden generátor náhodných čísel a volá jeho NextBytesmetody , Nexta NextDouble pro generování sekvencí náhodných čísel v různých rozsahech.

// 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

Následující příklad vygeneruje náhodné celé číslo, které používá jako index k načtení řetězcové hodnoty z pole.

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

Poznámky

Další informace o tomto rozhraní API najdete v tématu Doplňkové poznámky k rozhraní API pro náhodné.

Poznámky pro dědice

V rozhraní .NET Framework 2.0 a novějších Next()se chování metod , Next(Int32, Int32)a NextBytes(Byte[]) změnilo tak, že tyto metody nemusí nutně volat odvozenou třídu implementace Sample() metody. V důsledku toho by třídy odvozené z Random tohoto cílového rozhraní .NET Framework 2.0 a novější měly také přepsat tyto tři metody.

Poznámky pro volající

Implementace generátoru náhodných čísel ve Random třídě nezaručuje, že zůstane stejná ve všech hlavních verzích .NET. V důsledku toho byste neměli předpokládat, že stejné počáteční bude mít za následek stejnou pseudonáhodnou sekvenci v různých verzích .NET.

Konstruktory

Random()

Inicializuje novou instanci Random třídy pomocí výchozí počáteční hodnoty.

Random(Int32)

Inicializuje novou instanci Random třídy pomocí zadané počáteční hodnoty.

Vlastnosti

Shared

Poskytuje instanci bezpečnou Random pro vlákna, která může být použita souběžně z libovolného vlákna.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetItems<T>(ReadOnlySpan<T>, Int32)

Vytvoří pole naplněné položkami vybranými náhodně ze zadané sady voleb.

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

Vyplní prvky zadaného rozsahu položkami vybranými náhodně ze zadané sady voleb.

GetItems<T>(T[], Int32)

Vytvoří pole naplněné položkami vybranými náhodně ze zadané sady voleb.

GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Next()

Vrátí nezáporné náhodné celé číslo.

Next(Int32)

Vrátí nezáporné náhodné celé číslo, které je menší než zadané maximum.

Next(Int32, Int32)

Vrátí náhodné celé číslo, které je v zadaném rozsahu.

NextBytes(Byte[])

Vyplní prvky zadaného pole bajtů náhodnými čísly.

NextBytes(Span<Byte>)

Vyplní prvky zadaného rozsahu bajtů náhodnými čísly.

NextDouble()

Vrátí náhodné číslo s plovoucí desetinou čárkou, které je větší nebo rovno 0,0 a menší než 1,0.

NextInt64()

Vrátí nezáporné náhodné celé číslo.

NextInt64(Int64)

Vrátí nezáporné náhodné celé číslo, které je menší než zadané maximum.

NextInt64(Int64, Int64)

Vrátí náhodné celé číslo, které je v zadaném rozsahu.

NextSingle()

Vrátí náhodné číslo s plovoucí desetinou čárkou, které je větší nebo rovno 0,0 a menší než 1,0.

Sample()

Vrátí náhodné číslo s plovoucí desetinou čárkou mezi 0,0 a 1,0.

Shuffle<T>(Span<T>)

Provede místní prohazování rozsahu.

Shuffle<T>(T[])

Provede místní prohazování pole.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Produkt Verze
.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