Текст подпрограммы и версий ( Фортран )
gsu1r.zip , gsu2r.zip
Тексты тестовых примеров ( Фортран )
tgsu1r.zip , tgsu2r.zip
Текст подпрограммы и версий ( Си )
gsu1r_c.zip , gsu2r_c.zip
Тексты тестовых примеров ( Си )
tgsu1r_c.zip , tgsu2r_c.zip
Текст подпрограммы и версий ( Паскаль )
gsu1r_p.zip , gsu2r_p.zip
Тексты тестовых примеров ( Паскаль )
tgsu1r_p.zip , tgsu2r_p.zip

Подпрограмма:  GSU1R (версия GSU2R)

Назначение

Генерация массива псевдослучайных чисел, pавномеpно распределенных в интервале (0, 1).

Математическое описание

Псевдослучайные числа R (J) получаются по следующим рекуррентным формулам:

     K0  =  ISEED ,    где  ISEED - некотоpое целое начальное значение
                                                      из отрезка  [1, 2147483646] .
     KJ  =  7 5 * KJ-1  ( mod 231 - 1 ) ,    1 ≤ J ≤ N

     R(J)  =  KJ * 2-31 ,   1 ≤ J ≤ N
     ISEED  =  KN 

Д.Кнут, Искусство программирования для ЭВМ, т. 2, "Мир", M., 1977, стp. 22 - 51.

Использование

    SUBROUTINE  GSU1R (ISEED, N, R) 

Параметры

ISEED - целая переменная, значение которой перед обращением к подпрограмме может быть любым целым числом в пределах [1, 2147483646]; по окончании работы ее значение полагается равным (231) * R (N), и это значение может быть использовано при последующем вхождении в подпрограмму;
N - заданное количество генерируемых псевдослучайных чисел (тип: целый);
R - вещественный массив длины N, содержащий вычисленные псевдослучайные числа.

Версии

GSU2R - генерация одного псевдослучайного числа, pавномеpно распределенного в интервале (0, 1).

Вызываемые подпрограммы: нет

Замечания по использованию

  GSU2R является подпрограммой функцией и имеет заголовок
 
     REAL FUNCTION  GSU2R (ISEED)

Пример использования

       DIMENSION  R(3)
       ISEED = 123457
       N = 3
       CALL  GSU1R (ISEED, N, R)

Результат:

       ISEED  =  1645535613
       R(1)   =  0.966220069211
       R(2)   =  0.260710790753
       R(3)   =  0.766262231860