Класс Random
Экземпляр Random создают через
new Random() или new Random(seed)
с начальным зерном. Один объект помнит
внутреннее состояние между вызовами
Next
и других методов. С .NET 6 для разовых
вызовов часто берут
Random.Shared.
Синтаксис
var rand = new Random();
var seeded = new Random(1);
Пример
Давайте создадим генератор и проверим, что
Next попадает в диапазон:
using System;
class Program
{
static void Main()
{
var rand = new Random();
int res = rand.Next(1, 6);
Console.WriteLine(res >= 1 && res < 6);
}
}
Результат выполнения кода:
True
Пример
Давайте используем генератор с зерном и снова проверим границы:
using System;
class Program
{
static void Main()
{
var rand = new Random(1);
int res = rand.Next(10);
Console.WriteLine(res >= 0 && res < 10);
}
}
Результат выполнения кода:
True
Пример
Давайте вызовем два метода у одного экземпляра - состояние общее:
using System;
class Program
{
static void Main()
{
var rand = new Random(1);
double first = rand.NextDouble();
double second = rand.NextDouble();
bool res = first >= 0 && first < 1
&& second >= 0 && second < 1;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
Random.Shared,
общий генератор без своего экземпляра -
метод
Next,
который возвращает случайное целое -
метод
NextDouble,
который возвращает дробное от 0 до 1 -
метод
NextBytes,
который заполняет массив байт