I am supposed to figure out a set $S\subset U=\{1,2,...,n\}$ that is set by a computer. I can select $k$ subsets of $U$ and send $(S_1,...,S_k)$ to the computer. The computer returns a sequence of $k$ numbers, where the $i$th number is the number of elements in $S_i$ that is also in $S$. Now I should be able to figure out the set $S$.
What is the minimum number of k?
Mathematically, I want to know about the sequence: \begin{equation} a_n=\min \{k:\exists_{S_1,...,S_k \in 2^U} \ s.t. f:2^U\to Z^k, f(S)=(|S\cap S_1|,...,|S\cap S_k|) \textrm{ is an injection.}\} \end{equation}
My approach so far is:
$k=n$ is possible since $S_i=\{i\}$ would do the job. There is a lower bound given by the condition $2^n \leq (n+1)^k$. So $\frac{n}{\log_2(n+1)}\leq a_n \leq n$.
I also found an matrix formulation of the problem. Let $A$ be a $k\times n$ matrix with $0,1$. If $x\in\{0,1\}^n$ is a representation of S, i.e. $x_i=|S\cap\{i\}|$, then $Ax=f(S).$ The problem is to find out $A$ such that $Ay=Ax$ has a unique solution for $y\in\{0,1\}^n$. If the null space of $A$ contains only large integers, I think the solution can be unique even if $k<n$.
Is there some theorem related to calculating $a_n$ in this problem?