#include <stdlib.h> 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]);
Функции 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, в соответствии с линейной конгруэнтной формулой:
Параметр m = 2^48. Если lcong48() не вызывался, a и c установлены как:
Величина, возвращаемая любой из функций: drand48(), erand48(), lrand48(), nrand48(), mrand48() или jrand48(), - вычисляется при одновременной генерации следующей 48-битной Xi-последовательности. Когда соответствующее количество битов, в зависимости от типа данных, будет возвращено, происходит копирование его из старших битов Xi и преобразование в возвращаемое значение.
Функции drand48(), lrand48() и mrand48() сохраняют последние сгенерированные 48 битов Xi во внутреннем буфере. Функции erand48(), nrand48() и jrand48() требуют от вызывающей программы предоставить место для хранения величины Xi в массиве xsubi. Функции инициализируются начальной величиной Xi, указанной в массиве при первом вызове.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |