Генерирование случайных чисел средствами класса Random

Для генерирования последовательного ряда случайных чисел служит класс Random. Такие последовательности чисел оказываются полезными в самых разных ситуациях, включая имитационное моделирование. Начало последовательности случайных чисел определяется некоторым начальным числом, которое может задаваться автоматически или указываться явным образом.

В классе Random определяются два конструктора.

public Random()

public Random(int seed)

Первый конструктор создает объект типа Random, использующий системное время для определения начального числа. А во втором конструкторе используется начальное значение seed, задаваемое явным образом.

Методы, определенные в классе Random, перечислены в табл. 21.14.

Таблица 21.14. Методы, определенные в классе Random

Метод - Назначение

public virtual int Next() - Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до Int32.MaxValue-1 включительно

public virtual int Next(int maxValue) - Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до maxValue-1 включительно

public virtual int Next(int minValue, int maxValue) - Возвращает следующее случайное целое число, которое будет находиться в пределах от minValue до maxValue-1 включительно

public virtual void NextBytes(byte[] buffer) - Заполняет массив buffer последовательностью случайных целых чисел. Каждый байт в массиве будет находиться в пределах от 0 до Byte .MaxValue-1 включительно

public virtual double NextDouble() - Возвращает из последовательности следующее случайное число, которое представлено в форме с плавающей точкой, больше или равно 0,0 и меньше 1,0

protected virtual double Sample() - Возвращает из последовательности следующее случайное число, которое представлено в форме с плавающей точкой, больше или равно 0,0 и меньше 1,0. Для получения несимметричного или специального распределения случайных чисел этот метод необходимо переопределить в производном классе

Ниже приведена программа, в которой применение класса Random демонстрируется на примере создания компьютерного варианта пары игральных костей.

// Компьютерный вариант пары игральных костей.

using System;

class RandDice {

  static void Main() {

    Random ran = new Random();

    Console.Write(ran.Next(1, 7) + " ");

    Console.WriteLine(ran.Next(1, 7));

  }

}

При выполнении этой программы три раза подряд могут быть получены, например, следующие результаты.

5 2

4 4

1 6

Сначала в этой программе создается объект класса Random. А затем в ней запрашиваются два случайных значения в пределах от 1 до 6.

Более 800 000 книг и аудиокниг! 📚

Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением

ПОЛУЧИТЬ ПОДАРОК