![](/user_photo/2706_HbeT2.jpg)
syap
.pdf![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj141x1.jpg)
•Умение генерировать случайные числа требуется во многих приложениях. Класс Random содержит все необходимые для этого средства. Класс Random имеет конструктор класса: для того, чтобы вызывать методы класса, нужно вначале создавать экземпляр класса. Этим Random отличается от класса Math, у которого все поля и методы - статические, что позволяет обойтись без создания экземпляров класса Math.
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj142x1.jpg)
•Рассмотрим только оригинальные методы класса Random со статусом public, необходимые для генерирования последовательностей случайных чисел.
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj143x1.jpg)
конструктор
•Он имеет две реализации.
•Одна из них позволяет генерировать неповторяющиеся при каждом запуске серии случайных чисел. Начальный элемент такой серии строится на основе текущей даты и времени, что гарантирует уникальность серии. Этот конструктор вызывается без параметров. Он описан как public Random().
•Другой конструктор с параметром - public Random (int) обеспечивает важную возможность генерирования повторяющейся серии случайных чисел. Параметр конструктора используется для построения начального элемента серии, поэтому при задании одного и того же значения параметра серия будет повторяться.
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj144x1.jpg)
•Перегруженный метод public int Next() при каждом вызове возвращает положительное целое, равномерно распределенное в некотором диапазоне. Диапазон задается параметрами метода. Три реализации метода отличаются набором параметров:
•public int Next () - метод без параметров выдает целые положительные числа во всем положительном диапазоне типа int;
•public int Next (int max) - выдает целые положительные числа в диапазоне [0,max];
•public int Next (int min, int max) - выдает целые числа в диапазоне [min,max].
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj145x1.jpg)
•Метод public double NextDouble () имеет одну реализацию. При каждом вызове этого метода выдается новое случайное число, равномерно распределенное в интервале [0,1).
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj146x1.jpg)
•Еще один полезный метод класса Random позволяет при одном обращении получать целую серию случайных чисел. Метод имеет параметр - массив, который и будет заполнен случайными числами. Метод описан как public void NextBytes (byte[] buffer). Так как параметр buffer представляет массив байтов, то, естественно, генерированные случайные числа находятся в диапазоне [0, 255].
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj147x1.jpg)
•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)); }
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj148x1.jpg)
Операторы языка C#
Эмблема
организации
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj149x1.jpg)
Оператор присваивания
•Как в языке С++, так и в C# присваивание формально считается операцией. Вместе с тем запись:
•X = expr;
•следует считать настоящим оператором присваивания
![](/html/2706/293/html_DmIiFpA1EN.7Qcl/htmlconvd-RkzLkj150x1.jpg)
Блок или составной оператор
•С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором:
•{ оператор_1 ... оператор_N }