Текст подпрограммы и версий ( Фортран ) 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 |
Генерация массива псевдослучайных чисел, 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