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




 

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

52973. TAXATION. WHAT ARE TAXES? 528 KB
  Businesses and individuals are subject to many forms of taxes. The various forms of business organization are not taxed equally. The tax situation is simplest for proprietorships and most partnerships; corporations or companies are treated differently.
52974. Фінікія 55.5 KB
  Мета: визначити час на який припадає поява та розквіт фінікійських міст держав ознайомитися з господарством Фінікії досягненнями фінікійців у писемності та в інших галузях культури розкрити причини колонізації фінікійців значення колонізації; розвивати інформаційно пізнавальні компетентності вміння самостійної роботи з різними джерелами інформації аналізувати факти та явища робити висновки комунікативні компетентності вміння висловлювати власну думку аргументувати свою позицію представляти дослідження...
52975. Клас Кісткові риби. Загальна характеристика класу. Зовнішня будова риб 383 KB
  Мета: сформувати в учнів знання про клас Кісткові риби; розкрити особливості зовнішньої будови та життєдіяльність представників цього класу у звязку з умовами життя; простежити ускладнення будови кісткових риб порівняно з ланцетником і хрящовими рибами;визначити місце кісткових риб у системі органічного світу та еволюції хордових тварин;розвивати уміння самостійно працювати з малюнками та текстом підручника з натуральними обєктами;вчити порівнювати й робити висновки; розвивати логічне мислення...
52976. Проблемне навчання фізики 64 KB
  Застосування принципу активності в навчанні особливо потрібне в українській школі бо якраз нам треба перебороти ту пасивність що віками вироблялась у нашого народу і розвинути ініціативу та творчі здібності нашої молоді. Предметом особливої уваги кожного педагога має бути використання в роботі таких засобів методів і форм навчання які спрямовані на розвиток критичності та незалежності мислення допитливості винахідливості самостійності тощо. Суттєво підвищити ефективність розвитку інтелектуальноеврестичних здібностей можна лише в...
52977. Княжа Русь-Україна. Київська Русь - держава з центром у Києві 225.5 KB
  Мандруючи разом по маєтку князя Костянтина Острозького ви будете відображати свої емоції на обличчі. Подорож почалася. Маєток князя такий красивий, що кожен наступний крок викликає захоплення. В одному з приміщень розташувалася перша книгодрукарня і тут вже друкують книги, що викликає справжню радість. Тут нам у руки дають потримати Острозьку Біблію і ми справді здивовані, тому що вона нараховує шістсот двадцять вісім сторінок.
52978. ФІЗИКО-ХІМІЧНІ ВЛАСТИВОСТІ КАРБОНОВИХ КИСЛОТ. ДОБУВАННЯ 456.5 KB
  Зміст лекційного матеріалу на тему Карбонові кислоти. Завдання різного рівня складності по темі: Карбонові кислоти. Попередні забезпечуючі Хімія Особливості будови карбонових кислот на прикладі молекули оцтової кислоти та її фізикохімічні властивості. Пояснити роль молочної кислоти у виробництві молочнокислих продуктів.
52979. Вода – життя основа 41 KB
  Мета: підвищити рівень інформативності і розширити знання учасників про значення роль і вплив води на людей та все живе на землі; детальніше ознайомити з фізичними властивостями води; формувати життєво важливі переконання виховувати любов до природи. Розвиток людської цивілізації потребує все більше і більше кількості прісної води. Властивості води в основному вивчені але ще дуже багато таємниць води не розкриті. На сьогоднішньому занятті ми з вами ознайомимося з фізичними і ще мало вивченими властивостями води більш докладніше...