Bir zərin riyazi gözləntisi. üzlü zər 1, 2, ..., s üzlərinin hər birini ehtimalı ilə göstərir, buna görə onun riyazi gözləntisi bu ədədlərin arifmetik ortasına bərabərdir:
Cəmin riyazi gözləntisi riyazi gözləntilərin cəminə bərabərdir, buna görə Alisanın xalları və Bobun xalları üçün
Xallar riyazi gözləntiyə nəzərən simmetrik paylanıb. Bir zərdə və , və s - 1 və s. qiymətlər eyni ehtimalla düşür, yəni zər (1 + s) / 2 ətrafında simmetrikdir. Simmetrik kəmiyyətlərin cəmi də simmetrikdir — öz riyazi gözləntisinə nəzərən.
Alisa E[A] > E[B] olduqda qalib gəlir, Bob isə E[A] < E[B] olduqda qalib gəlir. Beləliklə:
Məsələni həll etmək üçün SA = \sum a_k + m və SB = \sum b_k + n cəmlərini müqayisə etmək kifayətdir.
Misal
Alisanın üzlü səkkiz zəri var, Bobun isə üzlü bir zəri var. Onda SA = 8 \cdot 4 + 8 = 40 və SB = 6 + 1 = 7, deməli SA > SB və cavab ALICE-dir.
Bunu bilavasitə yoxlayaq. Alisanın toplaya biləcəyi ən kiçik cəm 8 \cdot 1 = 8-dir, Bobun ən böyük cəmi isə -dır. Buna görə Alisa istənilən nəticədə qalib gəlir: p_a = 1, p_b = 0.
İkinci testə baxaq. Alisanın və üzlü zərləri var, Bobun isə və üzlü zərləri var. Onda SA = 6 + 4 + 2 = 12 və SB = 4 + 6 + 2 = 12, deməli SA = SB və cavab TIED-dir.
Bu, hesablamalar olmadan da görünür: Alisa və Bobun zər dəstləri eynidir, yalnız onların qeyd olunma sırası fərqlidir. Buna görə onların xalları eyni cür paylanıb və p_a = p_b.
Alqoritmin realizasiyası
Giriş məlumatlarını oxuyuruq. \sum a_k + m cəmini dəyişənində, \sum b_k + n cəmini isə dəyişənində toplayırıq.
scanf("%d %d", &m, &n);
sA = m; sB = n;
for (i = 0; i < m; i++)
{
scanf("%d", &x);
sA += x;
}
for (i = 0; i < n; i++)
{
scanf("%d", &x);
sB += x;
}Cəmləri müqayisə edib cavabı çap edirik.
if (sA > sB)
puts("ALICE");
else if (sA < sB)
puts("BOB");
else
puts("TIED");