4. naloga

Kako dobri so virusni testi?


Prebivalce testiramo na okužbo z virusom covida s hitrimi testi in s testi pcr. Prvi so, kot že ime pove, hitri (in poceni) in dajo rezultat v nekaj minutah, so pa nezanesljivi, drugi, tako imenovani testi pcr, pa so zanesljivejši, vendar precej dražji in je na rezultate treba čakati en dan.

Da bi ugotovili kvaliteto hitrih testov, občasno testiramo skupino ljudi hkrati z obema vrstama testov, hitrimi in testi pcr. Rezultate lahko predstavimo z dvema enako dolgima nizoma znakov, pri čemer i-ti znak prvega niza pove rezultat hitrega testa na i-tem pacientu (1 = okužen in 0 = neokužen), i-ti znak drugega niza pa rezultat testa pcr na istem pacientu (enako 1 = okužen in 0 = neokužen). Primerjava obeh nizov nam pokaže kvaliteto hitrih testov, ki smo jih pri tem poskusu uporabili.

Napiši podprogram (funkcijo) Primerjava(s, t, n), ki kot parametra dobi dva enako dolga niza s (rezultati hitrih testov) in t (rezultati testov pcr) in ugotovi, pri katerih n zaporednih pacientih je bilo največ razhajanj med hitrimi in testi pcr. Tvoja funkcija naj vrne indeks, na katerem se začne ta skupina n zaporednih pacientov; če je takšnih skupin več, vrni indeks najbolj leve od njih (tiste z najmanjšim začetnim indeksom). Tvoja rešitev naj bo čim bolj učinkovita, da bo delovala hitro tudi za zelo dolge nize in velike n. Predpostavi, da sta s in t dolga po vsaj n znakov, tako da rešitev gotovo obstaja.