Problem:
Let denote the set of all subsets of . A subset is called good if whenever are sets in , the set is also in . (Here, denotes the set of all elements in that are not in , and denotes the set of all elements in that are not in .) What fraction of the good subsets of have between 2015 and 3015 elements, inclusive?
If your answer is a decimal number or a fraction (of the form , where and are positive integers), then your score on this problem will be equal to , where is your answer and is the actual answer. Otherwise, your score will be zero.
Solution
Solution:
Answer:
Let , and .
We use the well-known rephrasing of the symmetric difference in terms of addition modulo 2 of "indicators/characteristic vectors". So we simply want the number of dimension subspaces of the -vector space . Indeed, good subsets of elements simply correspond to dimension subspaces (in particular, good subsets can only have sizes equal to powers of , and is the only power between 2015 and 3015, inclusive).
To do this, it's easier to first count the number of (ordered) tuples of linearly independent elements of , and divide (to get the subspace count) by the number of (ordered) tuples of linearly independent elements of any -dimensional subspace of (a well-defined number independent of the choice of subspace).
In general, if we want to count tuples of linearly independent elements in an -dimensional space (with ), just note that we are building on top of (0) (the zero-dimensional subspace), and once we've chosen elements (with ), there are elements linearly independent to the previous elements (which span a subspace of dimension , hence of "bad" elements). Thus the number of -dimensional subspaces of an -dimensional space is
a "Gaussian binomial coefficient."
We want to estimate
To do this, note that , so we may restrict our attention to the lower half. Intuitively, the Gaussian binomial coefficients should decay exponentially (or similarly quickly) away from the center; indeed, if , then
So in fact, the decay is super-exponential, starting (for odd and ) at an rate. So most of the terms (past the first 2 to 4, say) are negligible in our estimation. If we use the first two terms, we get an approximation of , which is enough for 20 points. (Including the next term gives an approximation of , which is good enough to get full credit.)
To compute the exact answer, we used the following python3 code:
```
from functools import lru_cache
from fractions import Fraction
@lru_cache(maxsize=None)
def gauss_binom(n, k, e):
if k < 0 or k > n:
return 0
if k == 0 or k == n:
return 1
return e ** k * gauss_binom(n - 1, k, e) + \
gauss_binom(n - 1, k - 1, e)
N = 23
K = 11
good = gauss_binom(N, K, 2)
total = sum(gauss_binom(N, i, 2) for i in range(N + 1))
print(Fraction(good, total))
print(float(good/total))
```