I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CiNpbmNsdWRlICZsdDtnc2wvZ3NsX2ZpdC5oJmd0OwoKaW50IG1haW4oKSB7CiAgICAvLyDYp9mE2KPYsdmC2KfZhSDYp9mE2KrZiiDZgtivINiq2YPZiNmGINmE2YfYpyDYudmE2KfZgtipINio2KfZhNix2YLZhSDYp9mE2KrYp9mE2YoKICAgIGRvdWJsZSBudW1iZXJzWzEwXTsKCiAgICAvLyDYp9iz2KrYrtiv2KfZhSDYrdmE2YLYqSDZhNis2YXYuSDYp9mE2KPYsdmC2KfZhSDZhdmGINin2YTZhdiz2KrYrtiv2YUKICAgIHByaW50ZigmcXVvdDvYp9mE2LHYrNin2KEg2KXYr9iu2KfZhCAxMCDYo9ix2YLYp9mFOlxuJnF1b3Q7KTsKICAgIGZvciAoaW50IGkgPSAwOyBpICZsdDsgMTA7ICsraSkgewogICAgICAgIHByaW50ZigmcXVvdDvYp9mE2LHZgtmFICVkOiAmcXVvdDssIGkgKyAxKTsKICAgICAgICBzY2FuZigmcXVvdDslbGYmcXVvdDssICZhbXA7bnVtYmVyc1tpXSk7CiAgICB9CgogICAgLy8g2KfZhNix2YLZhSDYp9mE2KrYp9mE2Yog2KfZhNiw2Yog2LPZitiq2YUg2KfZhNiq2YbYqNikINio2YcKICAgIGRvdWJsZSBuZXh0X251bWJlciA9IG51bWJlcnNbOV0gKyAxOwoKICAgIC8vINiq2YbZgdmK2LAg2KrYrdmE2YrZhCDYp9mE2KfZhtit2K/Yp9ixINio2KfYs9iq2K7Yr9in2YUg2YXZg9iq2KjYqSBnc2wKICAgIGdzbF92ZWN0b3IgKnggPSBnc2xfdmVjdG9yX2FsbG9jKDkpOwogICAgZ3NsX3ZlY3RvciAqeSA9IGdzbF92ZWN0b3JfYWxsb2MoOSk7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgJmx0OyA5OyArK2kpIHsKICAgICAgICBnc2xfdmVjdG9yX3NldCh4LCBpLCBudW1iZXJzW2ldKTsKICAgICAgICBnc2xfdmVjdG9yX3NldCh5LCBpLCBudW1iZXJzW2kgKyAxXSk7CiAgICB9CgogICAgZG91YmxlIGMwLCBjMSwgY292MDAsIGNvdjAxLCBjb3YxMSwgY2hpc3E7CiAgICBnc2xfZml0X2xpbmVhcih4LSZndDtkYXRhLCAxLCB5LSZndDtkYXRhLCAxLCB4LSZndDtzaXplLCAmYW1wO2MwLCAmYW1wO2MxLCAmYW1wO2NvdjAwLCAmYW1wO2NvdjAxLCAmYW1wO2NvdjExLCAmYW1wO2NoaXNxKTsKCiAgICAvLyDYrdix2LEg2KfZhNmF2KrYutmK2LHYp9iqCiAgICBnc2xfdmVjdG9yX2ZyZWUoeCk7CiAgICBnc2xfdmVjdG9yX2ZyZWUoeSk7CgogICAgLy8g2K3Ys9in2Kgg2KfZhNiq2YbYqNikCiAgICBkb3VibGUgcHJlZGljdGVkX25leHRfbnVtYmVyID0gYzAgKyBjMSAqIG5leHRfbnVtYmVyOwoKICAgIHByaW50ZigmcXVvdDvYp9mE2LHZgtmFINin2YTYqtin2YTZiiDYp9mE2YXYqtmI2YLYuTogJS4yZlxuJnF1b3Q7LCBwcmVkaWN0ZWRfbmV4dF9udW1iZXIpOwoKICAgIHJldHVybiAwOwp9Cg==
#include <stdio.h>
#include <gsl/gsl_fit.h>
int main() {
// الأرقام التي قد تكون لها علاقة بالرقم التالي
double numbers[10];
// استخدام حلقة لجمع الأرقام من المستخدم
printf("الرجاء إدخال 10 أرقام:\n");
for (int i = 0; i < 10; ++i) {
printf("الرقم %d: ", i + 1);
scanf("%lf", &numbers[i]);
}
// الرقم التالي الذي سيتم التنبؤ به
double next_number = numbers[9] + 1;
// تنفيذ تحليل الانحدار باستخدام مكتبة gsl
gsl_vector *x = gsl_vector_alloc(9);
gsl_vector *y = gsl_vector_alloc(9);
for (int i = 0; i < 9; ++i) {
gsl_vector_set(x, i, numbers[i]);
gsl_vector_set(y, i, numbers[i + 1]);
}
double c0, c1, cov00, cov01, cov11, chisq;
gsl_fit_linear(x->data, 1, y->data, 1, x->size, &c0, &c1, &cov00, &cov01, &cov11, &chisq);
// حرر المتغيرات
gsl_vector_free(x);
gsl_vector_free(y);
// حساب التنبؤ
double predicted_next_number = c0 + c1 * next_number;
printf("الرقم التالي المتوقع: %.2f\n", predicted_next_number);
return 0;
}