3956

Класс Random и его функции

Доклад

Информатика, кибернетика и программирование

Класс Random и его функции Умение генерировать случайные числа требуется во многих приложениях. Класс Random содержит все необходимые для этого средства. Класс Random имеет конструктор класса: для того, чтобы вызывать методы класса, нужно вначале со...

Русский

2012-11-10

63.6 KB

2 чел.

Класс Random и его функции

Умение генерировать случайные числа требуется во многих приложениях. Класс Random

содержит все необходимые для этого средства. Класс Random имеет конструктор класса: для

того, чтобы вызывать методы класса, нужно вначале создавать экземпляр класса. Этим

Random отличается от класса Math, у которого все поля и методы – статические, что

позволяет обойтись без создания экземпляров класса Math.

Как и всякий “настоящий” класс, класс Random является наследником класса Object, а,

следовательно, имеет в своем составе и методы родителя. Рассмотрим только оригинальные

методы класса Random со статусом public, необходимые для генерирования

последовательностей случайных чисел. Начнем рассмотрение с конструктора класса. Он

перегружен и имеет две реализации. Одна из них позволяет генерировать неповторяющиеся

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

основе текущей даты и времени, что гарантирует уникальность серии. Этот конструктор

вызывается без параметров. Он описан как public 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 позволяет при одном обращении получать целую

серию случайных чисел. Метод имеет параметр - массив, который и будет заполнен

случайными числами. Метод описан как public void NextBytes (byte[] buffer). Так как

параметр buffer представляет массив байтов, то, естественно, генерированные случайные

числа находятся в диапазоне [0, 255].

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

/// <summary>

/// Эксперименты с классом Random

/// </summary>

public void Rand()

{

const int initRnd = 77;

Random realRnd = new Random();

Random repeatRnd = new Random(initRnd);

// случайные числа в диапазоне [0,1)

Console.WriteLine("случайные числа в диапазоне[0,1)");

for(int i =1; i <= 5; i++)

{


Console.WriteLine("Число " + i + "= "

+ realRnd.NextDouble() );

}

// случайные числа в диапазоне[min,max]

int min = -100, max=-10;

Console.WriteLine(“случайные числа в диапазоне [" +

min +"," + max + "]“);

for(int i =1; i <= 5; i++)

{

Console.WriteLine(“Число ” + i + “= “

+ realRnd.Next(min,max) );

}

// случайный массив байтов

byte[] bar = new byte[10];

repeatRnd.NextBytes(bar);

Console.WriteLine(“Массив случайных чисел в диапазоне

[0, 255]“);

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

{

Console.WriteLine(“Число ” + i + “= ” +bar[i]);

}

}//Rand

Вначале создаются два объекта класса Random. У этих объектов разные конструкторы.

Объект с именем realRnd позволяет генерировать неповторяющиеся серии случайных чисел.

Объект repeatRnd дает возможность повторить при необходимости серию. Метод NextDouble

создает серию случайных чисел в диапазоне [0, 1). Вызываемый в цикле метод Next с двумя

параметрами создает серию случайных положительных целых, равномерно распределенных

в диапазоне [-100, -10]. Метод NextBytes объекта repeatRnd позволяет получить при одном

вызове массив случайных чисел из диапазона [0, 255]. Результаты вывода можно увидеть на

рис. 7.2.

Рис. 7.2. Генерирование последовательностей случайных чисел в процедуре Rand




 

А также другие работы, которые могут Вас заинтересовать

17857. Рынок труда 3.04 MB
  Задача 8 Тема: Рынок труда Исходные данные: Год рожденияГР = 2000 Месяц рожденияМР = 8 День рождения ДР = 8 Спрос на продукцию угольной отрасли характеризуется функцией: QD = ГР МР × P = 2000 8P. Технология производства угля задана производственной функцией: ...
17858. Рынок капитала 2.97 MB
  Задача 9 Тема: Рынок капитала Исходные данные: Год рожденияГР = 1968 Месяц рождения МР = 9 День рождения ДР = 1 Спрос на продукцию микропроцессорной отрасли удовлетворяемый корпорацией характеризуется функцией: QD = ГР МР ´ P = 1968 9Р. Технология прои
17859. Рынок информации 3.1 MB
  Задача 10 Тема: Рынок информации Исходные данные: Год рождения ГР = 2001 Месяц рожденияМР = 10 День рожденияДР = 20 Спрос на продукцию информационной отрасли характеризуется функцией: QD = ГР МР ´ P = 2001 10Р Технология производства информац
17860. Общественные блага и внешние эффекты 48 KB
  Задача 11 Тема Общественные блага и внешние эффекты Исходные данные: Год Вашего рожденияГР = 1999 Месяц Вашего рожденияМР = 11 День Вашего рожденияДР = 31 Общая величина выгоды в денежном выражении которая обеспечивается при производстве стирального поро...
17861. Общее равновесие 63 KB
  Задача 12 Тема Общее равновесие Исходные данные: Год рождения студентаГР = 2001 Месяц рождения студентаМР = 12 День рождения студентаДР = 12 Задана матрица прямых расходов А и вектор товарных выпусков отраслей экономики D: A ...
17862. Институциональные аспекты рыночного хозяйства 556.5 KB
  Лекция 1 Вводная Тема: Предмет и метод микроэкономики Учебная цель лекции: изложить основные особенности объекта являющегося предметом изучения микроэкономики получение ответа на вопросы: 1 Что изучает микроэкономика 2 Для чего нужны экономические знания 3 С ...
17863. Теория предельной полезности и поведение потребителя 314.5 KB
  Лекция 2 Тема: Теория предельной полезности и поведение потребителя Учебная цель лекции: изложить основные положения теории предельной полезности дать понятия потребностей экономических благ равновесия потребителя оказать содействие развитию у студентов ...
17864. Ординалистская теория поведения потребителя 296.5 KB
  Лекция 3 Тема: Ординалистская теория поведения потребителя Учебная цель лекции: изложить основные положения порядковой теории полезности дать понятия кривой безразличия равновесия потребителя оказать содействие развитию у студентов экономического мышлени...
17865. Анализ поведения потребителя 545.5 KB
  Лекция 4 Тема: Анализ поведения потребителя Учебная цель лекции: изложить основные положения теории потребительского выбора в более широкой трактовке с учётом изменения размера доходов и цен благ дать понятия инструментов теории: кривой доходпотребление крив...