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