drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - генерируют равномерно распределенные псевдослучайные числа
НАЗВАНИЕdrand48, erand48, lrand48, nrand48, mrand48, jrand48,
srand48, seed48, lcong48 - генерируют равномерно
распределенные псевдослучайные числа
СИНТАКСИС
#include
double drand48(void);
double erand48(unsigned short xsubi[3]);
long int lrand48(void);
long int nrand48(unsigned short xsubi[3]);
long int mrand48(void);
long int jrand48(unsigned short xsubi[3]);
void srand48(long seedval);
unsigned short int *seed48(unsignedshort seed16v [3]);
void lcong48(unsigned short param[7]);
ОПИСАНИЕ
Эти функции генерируют псевдослучайные числа, используя
линейный алгоритм и 48-битную целочисленную арифметику.
Функции drand48() и erand48() возвращают неотрицательное
число (с плавающей точкой) двойной точности, находящееся в
промежутке [0.0 , 1.0).
Функции lrand48() и nrand48() возвращают неотрицательное
длинное целое число, находящееся между 0 и 2^31.
Функции mrand48() и jrand48() возвращают длинное целое
число, находящееся между -2^31 и 2^31.
Функции srand48(), seed48() и lcong48() - это
инициализационные функции, одна из которых должна быть
вызвана перед использованием drand48(), lrand48() или
mrand49(). Функции erand48(), nrand48() и jrand48() не
требуют инициализации.
Все функции работают при помощи сгенерированной
последовательности 48-битных целых чисел Xi, в
соответствии с линейной конгруэнтной формулой:
Xn+1 = (aXn + c) mod m, где n >= 0
Параметр m = 2^48. Если lcong48() не вызывался, a и c
установлены как:
a = 0x5DEECE66D
c = 0xB
Величина, возвращаемая любой из функций: drand48(),
erand48(), lrand48(), nrand48(), mrand48() или jrand48(),
- вычисляется при одновременной генерации следующей
48-битной Xi-последовательности. Когда соответствующее
количество битов, в зависимости от типа данных, будет
возвращено, происходит копирование его из старших битов Xi
и преобразование в возвращаемое значение.
Функции drand48(), lrand48() и mrand48() сохраняют
последние сгенерированные 48 битов Xi во внутреннем
буфере. Функции erand48(), nrand48() и jrand48() требуют
от вызывающей программы предоставить место для хранения
величины Xi в массиве xsubi. Функции инициализируются
начальной величиной Xi, указанной в массиве при первом
вызове.
СООТВЕТСТВИЕ СТАНДАРТАМ
SVID 3
ЗАМЕЧАНИЯ
Эти функции считаются устаревшими в SVID 3.