Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C++ / Cl_Random

.h
Скачиваний:
15
Добавлен:
27.03.2015
Размер:
1.61 Кб
Скачать
#ifndef CL_RANDOM_H
#define CL_RANDOM_H

#include <time.h>
// Класс генерации случайных чисел. Выдает случайные числа, равномерно
// распределенные в фиксированном диапазоне. Используется детерминистический
// алгоритм, начинающийся с инициализирующего(seed) значения. Процесс генерации
// детерминистический, т.к. он берет начальное значение и выполняет
// фиксированный набор инструкций. Выход - уникален, определяется данными и
// инструкциями. Из-за начальной зависимости от seed-значения, ГСЧ создает
// одну и ту же последовательность при использовании одного и того же
// seed-значения.
// Класс создает псевдослучайную последовательность в соответствии с начальным
// seed-значением. Обеспечивается автоматический выбор seed-значения, в случае,
// если конструктору не передается никакого значения, тогда пользователь
// получает независимые псевдослучайные последовательности.
// Для генерации используется линейный конгруэнтный алгоритм, использующий
// большой нечетный постоянный множитель и постоянное слагаемое вместе с
// seed-значением для итеративного создания случайных чисел и обновления
// seed-значения.
const unsigned long maxshort = 65536L;
const unsigned long multiplier = 1194211693L;
const unsigned long adder = 12345L;

class RND
{
private:
   unsigned long randSeed;   //текущее seed-значение

public:
// Параметр s=0 (по умолчанию) задает автоматич.выбор seed-значения
   void PutSeed(unsigned int _s=0);
// ГСЧ в диапазоне [0 ,..., n-1]
   unsigned int Random(unsigned int n);
// ГСЧ в диапазоне [0 ,..., 1.0]
   double fRandom(void);
};
#endif
Соседние файлы в папке C++