Текст подпрограммы и версий
gsu3r_c.zip
Тексты тестовых примеров
tgsu3r_c.zip

Подпрограмма:  gsu3r_c

Назначение

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

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

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

     R(J)  =  A + (B-A) * R01(J)

где    A, B - границы заданного интервала ,
     R01 (J) - псевдослучайные числа ,
                    pавномеpно распределенные в интервале (0, 1) ,
                    вычисленные с помощью подпрограммы gsu1r_c. 

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

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

    int gsu3r_c (integer *iseed, real *a, real *b, integer *n,
            real *res)

Параметры

iseed - целая переменная, значение которой перед обращением к подпрограмме может быть любым целым числом в пределах [1, 214748646]; по окончании работы ей присваивается новое значение, котоpое может быть использовано при последующих обращениях к подпрограмме;
a - левая граница интервала (тип: вещественный);
b - правая граница интервала (тип: вещественный);
n - заданное количество генерируемых псевдослучайных чисел (тип: целый);
r - вещественный массив длины n, содержащий вычисленные псевдослучайные числа.

Версии: нет

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

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

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

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

int main(void)
{
    /* Local variables */
    extern int gsu3r_c(int *, float *, float *, int *, float *);
    static float r__[2];
    static int is;
    static float c_b1 = -1.f;
    static float c_b2 = 2.f;
    static int c__2 = 2;

    is = 1544170913;
    gsu3r_c(&is, &c_b1, &c_b2, &c__2, r__);

    printf("\n  %5i \n",is);
    printf("\n  %16.7e %16.7e \n",r__[0],r__[1]);
    return 0;
} /* main */


Результаты:

       iseed  =  882687915
       r(1)   =  - 0.2447055932134
       r(2)   =   0.2331007723697