Текст подпрограммы и версий gsu4i_c.zip |
Тексты тестовых примеров tgsu4i_c.zip |
Генерация массива целых псевдослучайных чисел, равномерно распределенных в заданном отрезке.
Псевдослучайные числа 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