Bernulli sınağı — iki mümkün nəticəsi olan eksperimentdir:
Uğur (hadisə baş verir) ehtimalı ilə,
Uğursuzluq (hadisə baş vermir) 1 - p ehtimalı ilə.
Sınaq o zaman "bernullivari" adlanır ki, o müstəqildir və onun uğur ehtimalı bütün sınaqlar ərzində sabit qalır.
Bernulli sınaqları sxemi — hər biri Bernulli sınağı olan müstəqil sınaqlar seriyasıdır. Sınaqların sayını ilə işarə edək. Hər sınaqda uğur ehtimalı və uğursuzluq ehtimalı 1 - p dəyişməz qalır.
Nümunə kimi pulun dəfələrlə atılmasını göstərmək olar. Əgər bizi atışdan neçəsində gerb düşməsi maraqlandırırsa, bu da Bernulli sınaqları sxemidir.
Bernulli sınağından ibarət seriyada uğurların sayı binomial paylanmaya tabedir. Tutaq ki, — sınaqda uğurların sayını bildirən təsadüfi kəmiyyətdir. Onda:
burada
— hər sınaqda uğur ehtimalı,
— sınaqdan uğurların sayı.
Sübut. Elə konkret sınaqlar ardıcıllığına baxaq ki, onda:
sınaq uğurludur (uğur ehtimalı )
n - k sınaq uğursuzdur (uğursuzluq ehtimalı q = 1 - p)
Sınaqlar müstəqil olduğundan, bu konkret ardıcıllığın ehtimalı ayrı-ayrı sınaqların ehtimallarının hasilinə bərabərdir:
Dəqiq uğur əldə etmək üçün, onların məhz hansı yerdə baş verəcəyini seçmək lazımdır. Bu cür üsulların sayı C_n^k kombinasiyalarının sayına bərabərdir.
Beləliklə, dəqiq uğurun olma ehtimalı aşağıdakına bərabərdir
Binomial əmsalın qiymətini həqiqi ədədlərdə hesablamaq üçün aşağıdakı üsuldan istifadə edək:
Məlumdur ki, ln~n! = ln~(1 \cdot 2 \cdot ... \cdot n) = ln~1 + ln~2 + ... + ln~n
qiymətlərini massivinin xanalarında yadda saxlayırıq. Sonra hesablayırıq
bundan sonra isə
Nümunə
Birinci testdə n = 8 sınaq aparılır. Hər sınaqda hadisəsinin baş vermə ehtimalı p = 0.3-ə bərabərdir. Biz hadisəsinin dəqiq k = 2 dəfə baş vermə ehtimalını tapmaq istəyirik. Axtarılan ehtimal bərabərdir:
Alqoritmin reallaşdırılması
iş massivini elan edək, burada lf[i] = ln~i! = ln~1 + ln~2 + ... + ln~i.
#define MAX 1001
double lf[MAX];Giriş məlumatlarını oxuyuruq.
scanf("%d %d", \u0026n, \u0026k);
scanf("%lf", \u0026p);
q = 1 - p;massivini doldururuq.
lf[1] = 0;
for (i = 2; i \u003c= n; i++)
lf[i] = lf[i - 1] + log(i);Binomial əmsalın qiymətini res = C_n^k hesablayırıq.
res = lf[n] - lf[k] - lf[n - k];
res = exp(res);Cavabı res = C_n^k \cdot p^k \cdot (1 - p)^{n - k} hesablayırıq.
for (i = 0; i \u003c k; i++)
res = res * p;
for (i = 0; i \u003c n - k; i++)
res = res * q;Cavabı çap edirik.
printf("%lf\n", res);