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

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

Назначение

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

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

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

    NR(J)  =  NA + INT( (NA - NB + 1) * R01(J) ) ,

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

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

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

    int gsu4i_c (integer *iseed, integer *na, integer *nb,
            integer *n, integer *nres)

Параметры

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

Версии: нет

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

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

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

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

int main(void)
{
    /* Local variables */
    extern int gsu4i_c(int *, int *, int *, int *, int *);
    static int is, nr[2];
    static int c_n1 = -1;
    static int c__2 = 2;

    is = 2092213417;
    gsu4i_c(&is, &c_n1, &c__2, &c__2, nr);

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


Результаты:

       iseed  =  420124958
       nr(1)  =  0
       nr(2)  =  -1