C# Language                
            Generowanie liczb losowych w C #
        
        
            
    Szukaj…
Składnia
- Losowy() 
- Random (int Seed) 
- int Next () 
- int Dalej (int maxValue) 
- int Next (int minValue, int maxValue) 
Parametry
| Parametry | Detale | 
|---|---|
| Nasionko | Wartość do generowania liczb losowych. Jeśli nie zostanie ustawiony, wartość domyślna jest określana przez bieżący czas systemowy. | 
| minValue | Wygenerowane liczby nie będą mniejsze niż ta wartość. Jeśli nie jest ustawiony, wartością domyślną jest 0. | 
| maksymalna wartość | Wygenerowane liczby będą mniejsze niż ta wartość. Jeśli nie zostanie ustawiony, wartością domyślną jest Int32.MaxValue. | 
| zwracana wartość | Zwraca liczbę o losowej wartości. | 
Uwagi
Losowe ziarno generowane przez system nie jest takie samo w każdym innym przebiegu.
Nasiona wytworzone w tym samym czasie mogą być takie same.
Wygeneruj losowy int
Ten przykład generuje losowe wartości od 0 do 2147483647.
Random rnd = new Random();
int randomNumber = rnd.Next();
Generuj losowe podwójne
Wygeneruj losową liczbę od 0 do 1,0. (bez 1.0)
Random rnd = new Random();
var randomDouble = rnd.NextDouble();
Wygeneruj losową liczbę całkowitą w danym zakresie
 Wygeneruj losową liczbę między minValue i maxValue - 1 . 
Random rnd = new Random();
var randomBetween10And20 = rnd.Next(10, 20);
Generowanie tej samej sekwencji liczb losowych w kółko
 Podczas tworzenia instancji Random z tym samym ziarnem zostaną wygenerowane te same liczby. 
int seed = 5;
for (int i = 0; i < 2; i++)
{
   Console.WriteLine("Random instance " + i);
   Random rnd = new Random(seed);
   for (int j = 0; j < 5; j++)
   {
      Console.Write(rnd.Next());
      Console.Write(" ");
   }
   Console.WriteLine();
}
Wynik:
Random instance 0
726643700 610783965 564707973 1342984399 995276750
Random instance 1
726643700 610783965 564707973 1342984399 995276750
Twórz jednocześnie wiele losowych klas z różnymi nasionami
Dwie losowe klasy utworzone w tym samym czasie będą miały tę samą wartość początkową.
 Za pomocą System.Guid.NewGuid().GetHashCode() może uzyskać inne ziarno nawet w tym samym czasie. 
Random rnd1 = new Random();
Random rnd2 = new Random();
Console.WriteLine("First 5 random number in rnd1");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd1.Next());
Console.WriteLine("First 5 random number in rnd2");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd2.Next());
rnd1 = new Random(Guid.NewGuid().GetHashCode());
rnd2 = new Random(Guid.NewGuid().GetHashCode());
Console.WriteLine("First 5 random number in rnd1 using Guid");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd1.Next());
Console.WriteLine("First 5 random number in rnd2 using Guid");
for (int i = 0; i < 5; i++)
    Console.WriteLine(rnd2.Next());
 Innym sposobem na uzyskanie różnych nasion jest użycie innej instancji Random do pobrania wartości nasion. 
Random rndSeeds = new Random();
Random rnd1 = new Random(rndSeeds.Next());
Random rnd2 = new Random(rndSeeds.Next());
 Umożliwia to również kontrolowanie wyniku wszystkich Random instancji poprzez ustawienie tylko wartości rndSeeds dla rndSeeds . Wszystkie pozostałe wystąpienia będą deterministycznie wyprowadzone z tej pojedynczej wartości początkowej. 
Wygeneruj losową postać
 Wygenerować losowy nas między i a z przy użyciu Next() przeciążenia dla danego zakresu numerów, a następnie przekształcenie otrzymanego int na char 
Random rnd = new Random();
char randomChar = (char)rnd.Next('a','z'); 
//'a' and 'z' are interpreted as ints for parameters for Next()
Wygeneruj liczbę, która jest procentem wartości maksymalnej
 Częstą potrzebą liczb losowych jest generowanie liczby stanowiącej X% pewnej maksymalnej wartości. można tego dokonać traktując wynik NextDouble() jako procent: 
var rnd = new Random();
var maxValue = 5000;
var percentage = rnd.NextDouble();
var result = maxValue * percentage; 
//suppose NextDouble() returns .65, result will hold 65% of 5000: 3250.