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




 

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

31041. Центры зарождения славянской государственности. Полемика историков вокруг проблемы образования Древнерусского гос-ва. Политика первых правитиелей Руси: Олега, Игоря, Ольги, Святослава 31.5 KB
  Главными проблемами являются вопросы о причинах возникновения госва Русь кто такие русыи откуда взялось название страны Русь кто были варяги. Немецкие ученые Байер и Миллер считали что слово русь означало название варяжского племени пришедшее с Рюриком что Древнерусское госва было создано норманнамиварягами. Название русь он связал с древним народом сарматамироксаланами и с названием реки Рось. В современной отечественной и зарубежной науке большинство ученых склоняется к мнению о скандинавском происхождении термина русь.
31042. Русь при Владимире 1 и Ярославе Мудром. Внешняя и внутренняя политика. Крещение и распространение христианства на Руси 31 KB
  Русь при Владимире 1 и Ярославе Мудром. шла междоусобица сыновей Святослава которую выиграл Владимир9801015. При Владимире завершилось объединение восточнославянских земель. При Владимире в Древнерусское госво вошли червенские земли земли радимичей северных угрофинов и др.
31043. Древнерусское общество и государство в 9-12 веках 31 KB
  Завещание разделило русскую землю на уделы. Это означало окончательный распад Руси на уделы. Постепенно малые бедные окраины стали превращаться в цветущие и сильные уделы. Многие уделы он сконцентрировал в руках своих сыновей.
31044. Тенденции развития различных древнерусских земель в 12 – начале 13 веков. Крупнейшие княжества и земли 33 KB
  Условной датой начала раздробленности на Руси считают 1132г когда умер Мстислав сын Мономаха и раздрася вся русская земля. Время раздробленности на Руси тянулось с начала 12века по147080г. На юге и юговостоке Руси неособо любили метсное боярство поэтому занятие киевского престола всякий раз обуславливалось сочетанием борьбы. В Западной Руси сильны были федеративные тенденции.
31045. Русь в международных отношениях 11-13веков: отношения с Великой Степью, Византией и Западной Европой 30.5 KB
  Первая встреча русских с монголотатарами произошла 31 мая 1223г. Впоследствии установилась зависимость русских земель от державы Батыя продлившаяся для СевВост Руси до 1480г а для Южной до 1362г. Эти 2 победы были очень важны: они прервали череду поражений русских для церкви же особенно было важно недопущение католического влияния на русских землях.
31046. Альтернативы объединительных процессов на Руси. Центры объединения русских земель в 14-15веках. Московская и Литовская Русь 31 KB
  Альтернативы объединительных процессов на Руси. Главными центрами объединения Руси выступили в 14в. Но реализовать свой шанс на объединение всей Руси этому княжеству не удалось во многом решающую роль здесь сыграли религиозные противоречия и сближение Литвы с Польшей что впоследствии преобразится в Речь Посполитую1569г. В Москву же была перенесена резиденция митрополита всея Руси.
31047. Природа социально-политического строя Московской Руси в 15-16веках. Российское гос-во при Иване 3 и Василии: органы централизованого и местного управления, доктрина Москва – Третий Рим, нарпавленность внешней политики 30 KB
  Российское госво при Иване 3 и Василии: органы централизованого и местного управления доктрина Москва Третий Рим нарпавленность внешней политики. москвичи осадили Тверь и с этого момента ученые обычно отсчитывают историю единого Московского госва. При Иване 3 уделов не стало он оказался государем всея Руси. Для централизованных стран харрно: сильный гос аппарат в центре чиновничество единое войско законодательство суд единообразное налогооблажение.
31048. Россия и Европа в 15-16в. Европеизация России в 17в(причины, хараткер, особенности, последствия) 31.5 KB
  Россия и Европа в 1516в. После брака Ивана 3 и Софьи Палеолог за рубежом стало встречаться еще одно название Россия. В ходе Ливонской войны15581583 и Смуты начала 17 века Россия остро ощущала как ей тяжело соперничать с европейскими странами особенно в военнотехнич области. Россия вывозила за границу лес меха.
31049. Взаимоотношения церкви и гос-ва на Руси в 14-18веках 29 KB
  Взаимоотношения церкви и госва на Руси в 1418веках. В 1516веках будет идти процесс постепенного подчинения церкви Московскому госву. С одной стороны союз с церковью опора на ее авторитет были выгодны московским государям. Но быстрый рост монастырского землевладения ослабяли мощь единого госва.