ГО С Т Р ИСО 24153— 2012
Приложение С
(справочное)
Текст программ д ля случайного отбора выборки и рандомизации
С.1 Введение
В данном приложении приведен текст программ на языке Си (см. [6], для отбора выборки (раздел 8).
Приведенный текст программ не оптимален по структуре и приведен для иллюстрации.
С.2 Текст демонстрационной программы
#inc!ude <stdio.h>
include <stdlib.h>
#inc!ude <math.h>
/• Прототипы функций V
voidRandPermNM(tong m. tong n. long A(J);
voidRandPermN(long n. long A(l):
voidRandDerang(long n. long АЦ. tong ВЦ):
voidRSWOR(tong n. long m. tong A[]);
voidSRSWORIULS(long n. long m. tong B[]. long A[)):
voidOSRSWORA(long n. tong m, tong A[)>;
voidOSRSWORB(tong n. long m, tong I. long A());
voidRLS(long n. long А(Н]):
long RandlntMN(tong m. long n);
long Randlnt1N(long n);
long C(long m. tong n);
double U(void);
Г
Глобальные переменные V
long Seed:
const tong ka = 16807. kq = 127773. kr = 2836. km = 2147483647;
/• Демонстрационная программа 7
int main(void)
{
long i. j. m. n:
system("CLS*);
pnntffДемонстрационная программа. Раздел 8.’л\п");
Seed = 543210; m = 1: n = 100:
рппИГСлучайное целое из интервала от m до п (см. 8.2)\п*);
printf(’m. n. i: %d %d %d\n". m. n. RandlntMNfm. n)):
system("nay3a “): printf{*\n*);
Seed = 543210: n = 100:
рппМ(’Спучайное целое от 1до п. см. 8.2. \л");
printffn. i: %d %dto". n. RandlntlN(n));
system(nnay3a"): printfOn*);
Seed = 543210; m = 5: n = 10:
long A[n]:
for(i = 0; i < n; i++) A[i) = i+1;
рппЩ’Случайная перестановка no m элементов одновременно, см. 8.3. \п");
RandPermNM(m, п. А);
printf(’m. n: %d %d\n“. m. n);
for (i = 0: i < m; i++) printf("%d ", Afi)):
prmtf("\n“):
system("nay3a ■•); printfOn*);
22