Random Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Rastgelelik için belirli istatistiksel gereksinimleri karşılayan bir sayı dizisi oluşturan bir algoritma olan sahte-rastgele sayı oluşturucusunun temsilidir.
public ref class Random
public class Random
[System.Serializable]
public class Random
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class Random
type Random = class
[<System.Serializable>]
type Random = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Random = class
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 , NextBytesNextve NextDouble yöntemlerini çağırır.
// 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
// Instantiate random number generator using system-supplied value as seed.
let rand = Random()
// Generate and display 5 random byte (integer) values.
let bytes = Array.zeroCreate 5
rand.NextBytes bytes
printfn "Five random byte values:"
for byte in bytes do
printf "%5i" byte
printfn ""
// Generate and display 5 random integers.
printfn "Five random integer values:"
for _ = 0 to 4 do
printf $"{rand.Next(),15:N0}"
printfn ""
// Generate and display 5 random integers between 0 and 100.
printfn "Five random integers between 0 and 100:"
for _ = 0 to 4 do
printf $"{rand.Next 101,8:N0}"
printfn ""
// Generate and display 5 random integers from 50 to 100.
printfn "Five random integers between 50 and 100:"
for _ = 0 to 4 do
printf $"{rand.Next(50, 101),8:N0}"
printfn ""
// Generate and display 5 random floating point values from 0 to 1.
printfn "Five Doubles."
for _ = 0 to 4 do
printf $"{rand.NextDouble(),8:N3}"
printfn ""
// Generate and display 5 random floating point values from 0 to 5.
printfn "Five Doubles between 0 and 5."
for _ = 0 to 4 do
printf $"{rand.NextDouble() * 5.0,8:N3}"
// 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
Module Example
Public Sub Main()
' Instantiate random number generator using system-supplied value as seed.
Dim rand As New Random()
' Generate and display 5 random byte (integer) values.
Dim bytes(4) As Byte
rand.NextBytes(bytes)
Console.WriteLine("Five random byte values:")
For Each byteValue As Byte In bytes
Console.Write("{0, 5}", byteValue)
Next
Console.WriteLine()
' Generate and display 5 random integers.
Console.WriteLine("Five random integer values:")
For ctr As Integer = 0 To 4
Console.Write("{0,15:N0}", rand.Next)
Next
Console.WriteLine()
' Generate and display 5 random integers between 0 and 100.'
Console.WriteLine("Five random integers between 0 and 100:")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N0}", rand.Next(101))
Next
Console.WriteLine()
' Generate and display 5 random integers from 50 to 100.
Console.WriteLine("Five random integers between 50 and 100:")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N0}", rand.Next(50, 101))
Next
Console.WriteLine()
' Generate and display 5 random floating point values from 0 to 1.
Console.WriteLine("Five Doubles.")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N3}", rand.NextDouble())
Next
Console.WriteLine()
' Generate and display 5 random floating point values from 0 to 5.
Console.WriteLine("Five Doubles between 0 and 5.")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N3}", rand.NextDouble() * 5)
Next
End Sub
End Module
' 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.
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
let rnd = Random()
let malePetNames =
[| "Rufus"; "Bear"; "Dakota"; "Fido";
"Vanya"; "Samuel"; "Koani"; "Volodya";
"Prince"; "Yiska" |]
let femalePetNames =
[| "Maggie"; "Penny"; "Saya"; "Princess";
"Abby"; "Laila"; "Sadie"; "Olivia";
"Starlight"; "Talla" |]
// Generate random indexes for pet names.
let mIndex = rnd.Next malePetNames.Length
let fIndex = rnd.Next femalePetNames.Length
// Display the result.
printfn "Suggested pet name of the day: "
printfn " For a male: %s" malePetNames.[mIndex]
printfn " For a female: %s" femalePetNames.[fIndex]
// The example displays output similar to the following:
// Suggested pet name of the day:
// For a male: Koani
// For a female: Maggie
Module Example
Public Sub Main()
Dim rnd As New Random()
Dim malePetNames() As String = { "Rufus", "Bear", "Dakota", "Fido",
"Vanya", "Samuel", "Koani", "Volodya",
"Prince", "Yiska" }
Dim femalePetNames() As String = { "Maggie", "Penny", "Saya", "Princess",
"Abby", "Laila", "Sadie", "Olivia",
"Starlight", "Talla" }
' Generate random indexes for pet names.
Dim mIndex As Integer = rnd.Next(malePetNames.Length)
Dim fIndex As Integer = rnd.Next(femalePetNames.Length)
' Display the result.
Console.WriteLine("Suggested pet name of the day: ")
Console.WriteLine(" For a male: {0}", malePetNames(mIndex))
Console.WriteLine(" For a female: {0}", femalePetNames(fIndex))
End Sub
End Module
' The example displays output similar to the following:
' Suggested pet name of the day:
' For a male: Koani
' For a female: Maggie
Açıklamalar
Uyarı
Rastgele parola oluşturmaya uygun bir sayı gibi şifreleme açısından güvenli rastgele bir sayı oluşturmak için sınıfındaki RandomNumberGenerator statik yöntemlerden birini kullanın.
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öntemler mutlaka yönteminin türetilmiş sınıf uygulamasını Sample() çağırmaz.NextBytes(Byte[])Next(Int32, Int32) Sonuç olarak, bu hedef .NET Framework 2.0 ve sonraki sürümlerden Random türetilen sınıflar da 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
| Name | Description |
|---|---|
| Random() |
Varsayılan bir tohum değeri kullanarak sınıfın Random yeni bir örneğini başlatır. |
| Random(Int32) |
Belirtilen tohum değerini kullanarak sınıfının yeni bir örneğini Random başlatır. |
Özellikler
| Name | Description |
|---|---|
| Shared |
Herhangi bir iş parçacığından eşzamanlı olarak kullanılabilecek iş parçacığı güvenli Random bir örnek sağlar. |
Yöntemler
| Name | Description |
|---|---|
| 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) |
| GetHexString(Int32, Boolean) |
Rastgele onaltılık karakterlerle dolu bir dize oluşturur. |
| GetHexString(Span<Char>, Boolean) |
Arabelleği rastgele onaltılık karakterlerle doldurur. |
| 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çenek 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. |
| GetString(ReadOnlySpan<Char>, Int32) |
tarafından |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Next() |
Negatif olmayan rastgele bir tamsayı döndürür. |
| Next(Int32, Int32) |
Belirtilen aralık içinde rastgele bir tamsayı döndürür. |
| Next(Int32) |
Belirtilen maksimumdan küçük negatif olmayan 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 bir kayan nokta sayısı döndürür. |
| NextInt64() |
Negatif olmayan rastgele bir tamsayı döndürür. |
| NextInt64(Int64, Int64) |
Belirtilen aralık içinde rastgele bir tamsayı döndürür. |
| NextInt64(Int64) |
Belirtilen maksimumdan küçük negatif olmayan 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 bir kayan nokta sayısı 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 bir dize döndürür. (Devralındığı yer: Object) |