1.8 KiB
Inclusion-Exclusion Principle
Principle that dictates that when combining / overlapping sets, you have to make sure to not include elements that occur in multiple sets multiple times.
Example:
How many integers between 1 and 10^6 are of the form x^2 or x^5 for some x in NN?
How many x^2?
sqrt(10^6) = 10^3 = 1.000
How many x^5?
By estimation:
&15^5 = 759,375 && "--- in the range / below" 10^6 \
&16^5 = 1,048,576 && "--- outside the range / above" 10^6 \
&=> 15 "numbers in the form "x^5"exist" &&
Warning
Now, we can't add
1,000and15, since there are numbers that match both, so we need to subtract these duplicates.
How many x^2 and x^5 / x^10?
& 3^10 = 59,049 \
& 4^10 = 1,048,576 \
& => 3 "numbers that are both" x^2 "and" x^5 "exist"
Final calculation:
Formula: "Elements that are" x^2 + "Elements that are" x^5 - "Elements that are both"
==> 1,000 + 15 - 3 = 1,012
For two sets
|"Total possibilities"| - |"Avoid 1"| - |"Avoid 2"| + |"Avoid Both"|
Where
"Avoid 1"are all elements not matching condition 1"Avoid 2"are all elements not matching condition 2"Avoid Both"are all elements not matching condition 1 and 2
Type of Task: Boolean Lattice
Find the amount of upper bounds in {0, 1}^5 for the set of vectors S = {x, y, z}
& x = (0, 1, 0, 0, 0) \
& y = (0, 0, 1, 0, 1) \
& z = (0, 1, 1, 0, 0) \
[!INFO] Method used is called All-Zero Column Method
We look for columns that have $0$'s in all three vectors: Column 1 and 4, that's 2 columns, so we define k = 2.
To get our result we calculate 2^k since there are only two possible states for each value (0, 1):
2^2 = 4.
So we have 4 upper bounds in total.
[!INFO] For the amount of lower bounds we'd check for all-ones columns