const int n = 5;
int p[] = {10, 2, 15, 1, 5};
// Bölüm 1
for (int i = 0; i < n; i++)
printf("%3d ", p[i]);
printf("\n");
// Bölüm 2
int s[n];
for (int i = 0; i < n; i++) {
s[i] = 0;
p[i] += (i > 0 ? p[i - 1] : 0);
}
// Bölüm 3
int c = 100000;
for (int k = 0; k < c; k++) {
int r = rand() % p[n - 1];
for (int i = 0; i < n; i++) {
if (p[i] > r) {
s[i]++;
break;
}
}
}
// Bölüm 4
double scaler = (double)c / p[n - 1];
for (int i = 0; i < n; i++) {
s[i] = (int)(s[i] / scaler + 0.5);
printf("%3d ", s[i]);
}
Yukarıdaki C kodunun her bir bölümünün gerçekleştirdiği işlevleri ve Bölüm 3’teki rastgele seçim mekanizmasının amacı ile çalışma mantığını açıklayınız.
Cevapla