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




 

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

52051. Сценарий веселого новогоднего корпоратива 31.5 KB
  Доктор помогите Я в себя не верю.: И что же мне делать. Пушистую такую снегом припорошенную. всматривается переворачивает лист снова всматривается улыбается Так это ж хоровод Детишки нарядились зверятами и танцуют вокруг ёлки Весело имДок.
52052. Новый год к нам мчится... 47 KB
  Появляется почтальон Печкин в шапкеушанке с конвертом в руках.Почтальон Печкин. Здравствуйте Это я почтальон Печкин Принес вам письмо для вашего шефа. А письмо от когоПочтальон Печкин.
52053. Сценарий Нового Года на работе 40.5 KB
  Царь: О Новый год скоро Хлопушечек прикупил постреляем на новогоднем вечере.Царь: Ты кто Откуда взялсяВолшебник: Из хлопушки.Царь: Ничего себе а почему одно желание В сказках волшебники несколько желаний исполняют.
52054. Новогодний КВН 26 KB
  МУЗЫКАЛЬНЫЙ КОНКУРСФранцузская народная песня о незадачливых туристахисполняется на мелодии Джо Дассена Все действия сопровождаются пантомимой Таня Заяц и Бычок.Со скалы он слезть не могИ весь до нитки промокВ турпоходТаких турклуб наш не берётВ Новый годСюда не зоветТех ктоГромко стонетТех ктоВ речке тонетТише Танечка не плачьЗабери свой мячИ не дурачь туристовНе дурачь3. АНЕКДОТ В ЛИЦАХСтолкнулись в лесу нос к носу Турист и Медведь. Я турист Нет это я турист а ты завтрак туристаВ течение вечера предлагается...
52055. Сценарий проведения новогоднего корпоратива 33 KB
  Тост: Пусть Новый год Вас осенитПодарит Вам успехИ в Вашем доме пусть звучитВеселый звонкий смех.И пусть в Ваш дом как снежный комВсегда приходит счастьеПесняПока все танцуют нужно выбрать ДМ и СН и подготовить их к встрече.Тост: Пусть горы в жизни будут не помехойНам сдвинуть их делов на 5 минут.Тост: Вьюга пусть на целый годВам здоровья намететВетер выдует все хвориНа холодное подворье.
52056. Інтерактивні технології навчання на уроках математики та інформатики 419 KB
  Інтерактивне навчання 3 2 розділ. Використання інтерактивного навчання на уроках інформатики 15 4. Використання інтерактивного навчання на уроках математики 24 5.
52057. Урок-концерт з іноземної мови у 4 класi 981 KB
  Teacher. Good morning, dear guests! Good morning, dear boys and girls. We would like to show you how we can rest and play. I know that all of you like study English. Do you like riddles? Guess!
52058. До побачення, Букварику! 47 KB
  Я літери вчу. Ой ніколи гратись бо літери вчу. Шановні літери ласкаво просимо до нас на свято. Заходять літери 1а літера.
52059. Розвиток координації рухів засобами художньої гімнастики 66.5 KB
  Розвивати координацію рухів у дівчат старшої ланки засобами художньої гімнастики. Формувати компетенцію саморозвитку та самоосвіти під час виконання вправ з м`чем, обручем, скакалкою.