You are on page 1of 6

Principiul includerii si excluderii

O gam foarte larg de probleme n cadrul concursurilor de informatic, i nu numai, se rezolv folosind principiul includerii i excluderii.
Teoria poate prea greu de neles, aa c vom ncerca s oferim o explicaie ct mai clar pentru cei interesai.
Principiul enun faptul c fiind date n mulimi finite A1,A2,A3...An, relaia de mai jos este adevrat...

Pentru demonstraie, vom pleca de la cazul banal cnd avem doar dou mulimi; fie acestea A i B. Dac sunt disjuncte, este clar c reuniunea
lor se calculeaz dup relaia
. Rmne de rezolvat cazul cnd A i B au cel puin un element n comun. Relaia
anterioar numr elementele comune din cadrul reuniunii de dou ori (o dat pentru A i o dat pentru B), de unde apare nevoia s scdem
numrul acestora din rezultat. Acest lucru este uor de fcut, dat fiind faptul c pentru A i B, numrul de elemente comune celor doua
mulimi este
. Rezult
.
n diagrama din dreapta este reprezentat cazul cu trei muimi A, B i C. Relaia de mai sus se extinde
la
.
Pentru cazul general, avnd n mulimi A1,A2,A3...An, vom presupune c exist un element x din

comun pentru exact k multimi. Fie acestea Ai1, Ai2, Ai3 ... Aik. Vom considera cardinalele mulimilor doar fa de acest numr x (cu
alte cuvinte, ignorm celelalte elemente). Dac vom face intersecia a mai mult de k mulimi, sau a unor mulimi cu indicele de ordine diferit

de i1, i2 ... ik, aceast intersecie va fi evident vid. Numrul de intersecii a dou mulimi din cele k este

, numrul de intersecii a trei

mulimi este
, etc. Cum urmrim doar elementul x, avem relaia
Rezult c relaia de demonstrat este adevrat.

Aplicaie
Rspundei la M ntrebri de tipul: dndu-se dou numere naturale A i B, s se determine numrul de numere naturale mai mici sau egale
cu A i prime cu B. Dou numere naturale x, y sunt prime ntre ele dac cmmdc(x, y) = 1.

Notaii
n loc s calculm n mod direct numrul de numere mai mici ca A i prime cu B, va fi mai uor s calculm numrul de numere mai mici
ca A i neprime cu B, dup care s scdem acest rezultat din A. Astfel, vom lua n considerare divizorii primi ai lui B; fie acetia d1, d2 ... dk.
Este evident c orice numr natural x pentru care cmmdc(x, B) 1 va fi divizibil cu unul din numerele d1, d2 ... dk. De aici rezult c vom
avea k mulimi formate din numerele naturale mai mici ca A i prime cu cte unul din divizorii primi ai lui B. Valoarea cutat este
reprezentat de cardinalul reuniunii lor. Calcularea acestui cardinal implic principiul includerii i exlcuderii.

Date de intrare
Fiierul de intrare pinex.in va conine pe prima linie numrul M, reprezentnd numrul de ntrebri. Urmtoarele M linii vor conine cte dou
numere A i B cu semnificaia din enun.

Date de ieire
Fiierul de ieire pinex.out va conine M linii, pe linia i fiind rspunsul la a i-a ntrebare.

Restricii

1 M 500.

1 A 1018.

1 B 1012.

Pentru 30% din teste M 100 i A, B 1 000.

Pentru 70% din teste A, B 109.

Exemplu
pinex.in

pinex.out

10 5

20 6

14

50 30

Indicaii de rezolvare
Demonstraii mai riguroase a acestui principiu putei citi pe wikipedia sau pe cut-the-knot.
n rezolvarea aplicaiei, vom calcula numrul de numere mai mici ca A neprime cu B. Fie d1, d2 ... dk divizorii primi ai lui B. Fiecare astfel de
divizor va determina o mulime de numere
. Astfel, soluia va fi
. tiind
cardinalul fiecrei configuraii de intersecie ntre cele k mulimi, vom putea folosi principiul includerii i excluderii pentru calcularea numrului
cutat.
S exemplificm pentru A = 50 i B = 30. Divizorii primi ai lui B sunt 2, 3 i 5. Rezult mulimile
i
. Tabelul de mai jos ilustreaz toate cele 7 mulimi care vor aprea n operaiile efectuate de noi, precum i
elementele coninute de acestea.
Numrul de numere mai mici ca A i divizibile cu x va fi [A/x] (parte ntreag din A mprit la x). De asemenea, dac avem dou
mulimi Ai i Aj, i, j k, atunci
Astfel, pentru exemplul A = 50 i B = 30, avem relaia...

Soluia n acest caz va fi

, cele 14 numere fiind

. Acest relaie se extinde natural la n mulimi.

Detalii de implementare
Soluia de 30 puncte presupune parcurgerea numerelor mai mici ca A la fiecare ntrebare, verificndu-se primalitatea lor cu B.
Pentru 70 puncte trebuie aplicat principiul includerii i excluderii descris mai sus.
Optimizarea ce permite obinerea punctajului maxim presupune precalcularea tuturor numerelor prime mai mici ca 106. Astfel, atunci cnd
determinm divizorii primi ai lui B vom itera doar prin numere prime. Complexitatea acestei soluii este
prin X ne referim la numrul divizorilor primi ai lui B.

Aplicaii

, unde

You might also like