Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Класс Random




Бывают ситуации, когда требуется, чтобы результат работы программы был случайным в определенных пределах. Для реализации такой возможности во многих языках программирования присутствуют встроенные функции, код которых выдает случайные числа. На самом деле числа не совсем случайные, а псевдослучайные. Дело в том, что искусственно реализовать случайность невозможно. Обычно берется некоторый коэффициент, и с его помощью вычисляется каждое последующее «случайное» число.

Генератор псевдослучайных чисел – алгоритм, порождающий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению (обычно равномерному).

Класс Random содержит необходимые для этого методы. Для того, чтобы вызывать методы класса, нужно вначале создавать экземпляр (объект, переменную) класса. Этим Random отличается от класса Math, у которого все поля и методы - статические, что позволяет обойтись без создания экземпляров класса Math. Таким образом, методы класса Random не являются статическими.

Рассмотрим методы класса Random, необходимые для генерирования последовательностей случайных чисел.

Начнем рассмотрение с конструктора класса. Объявление экземпляра класса выглядит следующим образом:

Random r = new Random();

где Random() – конструктор класса Random (определение и назначение конструктора будет вводиться далее в курсе). Он перегружен и имеет две реализации.

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

Другой конструктор с параметром - public Random (int) обеспечивает возможность генерирования повторяющейся серии случайных чисел. Параметр конструктора используется для построения начального элемента серии, поэтому при задании одного и того же значения параметра серия будет повторяться.

Перегруженный метод public int Next()при каждом вызове возвращает положительное целое, равномерно распределенное в некотором диапазоне. Диапазон задается параметрами метода. Три реализации метода отличаются набором параметров:

public int Next ()– метод без параметров выдает целые положительные числа во всем положительном диапазоне типа int;

public int Next (int max) – выдает целые положительные числа в диапазоне [0,max);

public int Next (int min, int max)– выдает целые числа со знаком в диапазоне [min,max).

public double NextDouble()при каждом вызове этого метода выдается новое случайное число в интервале [0,1).

Приведем пример работы со случайными числами:

Random r = new Random();



int[] mas = new int[4];

for (int i = 0; i < 4; i++)

{

mas[i] = r.Next(10);

Console.WriteLine(mas[i]);

}

На самостоятельное изучение Вам выносится генерирование уникальных идентификационных номеров.

Контрольные вопросы:

1.Что такое Генератор псевдослучайных чисел?

2.Методы класса Random статические или нет? Почему?

3.В каких случаях целесообразно использовать ступенчатые массивы?

4.Когда целесообразно использовать оператор цикла foreach?

5.Чему равно значение свойства массива Length (для одномерных, двумерных и ступенчатых массивов)?

6.Какое значение возвращает функция GetUpperBound(i) в зависимости от значения i?


mylektsii.ru - Мои Лекции - 2015-2019 год. (0.004 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал