İngilizce dilinde oku

Aracılığıyla paylaş


Random Sınıf

Tanım

Rastgelelik için belirli istatistiksel gereksinimleri karşılayan bir sayı dizisi oluşturan bir algoritma olan sahte rastgele sayı oluşturucusunun temsilidir.

C#
public class Random
C#
[System.Serializable]
public class Random
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Random
Devralma
Random
Öznitelikler

Örnekler

Aşağıdaki örnek tek bir rastgele sayı oluşturucu oluşturur ve farklı aralıklarda rastgele sayı dizileri oluşturmak için , Nextve NextDouble yöntemlerini çağırırNextBytes.

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

Aşağıdaki örnek, bir diziden dize değeri almak için dizin olarak kullandığı rastgele bir tamsayı oluşturur.

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

Açıklamalar

Bu API hakkında daha fazla bilgi için bkz. Rastgele için ek API açıklamaları.

Devralanlara Notlar

.NET Framework 2.0 ve sonraki sürümlerinde, , ve yöntemlerinin Next()davranışı değişmiştir, böylece bu yöntemlerin yöntemin türetilmiş sınıf uygulamasını çağırmaması Sample() gerekir.NextBytes(Byte[])Next(Int32, Int32) Sonuç olarak, bu hedeften Random türetilen sınıflar .NET Framework 2.0 ve sonraki sürümleri de bu üç yöntemi geçersiz kılmalıdır.

Arayanlara Notlar

Sınıfındaki rastgele sayı oluşturucunun Random uygulanması, .NET'in ana sürümlerinde aynı kalacağı garanti değildir. Sonuç olarak, aynı tohumun farklı .NET sürümlerinde aynı sahte rastgele diziyle sonuçlandığını varsaymamalısınız.

Oluşturucular

Random()

Varsayılan bir tohum değeri kullanarak sınıfının yeni bir örneğini Random başlatır.

Random(Int32)

Belirtilen seed değerini kullanarak sınıfının yeni bir örneğini Random başlatır.

Özellikler

Shared

Herhangi bir iş parçacığından eşzamanlı olarak kullanılabilecek iş parçacığı güvenli Random bir örnek sağlar.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetItems<T>(ReadOnlySpan<T>, Int32)

Sağlanan seçenek kümesinden rastgele seçilen öğelerle doldurulmuş bir dizi oluşturur.

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

Belirtilen bir yayılma alanının öğelerini, sağlanan seçim kümesinden rastgele seçilen öğelerle doldurur.

GetItems<T>(T[], Int32)

Sağlanan seçenek kümesinden rastgele seçilen öğelerle doldurulmuş bir dizi oluşturur.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
Next()

Negatif olmayan rastgele bir tamsayı döndürür.

Next(Int32)

Belirtilen maksimumdan küçük negatif olmayan bir rastgele tamsayı döndürür.

Next(Int32, Int32)

Belirtilen aralık içinde rastgele bir tamsayı döndürür.

NextBytes(Byte[])

Belirtilen bayt dizisinin öğelerini rastgele sayılarla doldurur.

NextBytes(Span<Byte>)

Belirtilen bayt aralığının öğelerini rastgele sayılarla doldurur.

NextDouble()

0,0'dan büyük veya buna eşit ve 1,0'dan küçük rastgele kayan noktalı bir sayı döndürür.

NextInt64()

Negatif olmayan rastgele bir tamsayı döndürür.

NextInt64(Int64)

Belirtilen maksimumdan küçük negatif olmayan bir rastgele tamsayı döndürür.

NextInt64(Int64, Int64)

Belirtilen aralık içinde rastgele bir tamsayı döndürür.

NextSingle()

0,0'dan büyük veya buna eşit ve 1,0'dan küçük rastgele kayan noktalı bir sayı döndürür.

Sample()

0,0 ile 1,0 arasında rastgele bir kayan nokta sayısı döndürür.

Shuffle<T>(Span<T>)

Bir yayılma alanının yerinde karıştırma işlemini gerçekleştirir.

Shuffle<T>(T[])

Bir dizinin yerinde karıştırma işlemini gerçekleştirir.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ürün Sürümler
.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