Why do we use several bits instead of a single bit for storage of objects in Bloom Filters
Consider Bloom filters in which $k$ hash functions are used. If we look up a value which is in the filter, then we always conclude that it is indeed in the filter. Things are more complicated when we look up a value which is not in the table; we could erroneously conclude that it were in the table.

Suppose the filter is of size $n$, and $m$ values were put into the table. So roughly $km$ positions are set to $1$. If we look up a value which was not put in the filter, then assuming that the hash locations corresponding to it are random, the probability that we erroneously conclude that it is in the filter is
$$ \left(\frac{km}{n}\right)^k. $$
The correct value of $k$ thus depends on the expected $m/n$. Suppose that $m = n/10$. Then we have the following error probabilities:
$$
\begin{array}{c|l}
k &amp; \text{error probability} \\\hline
1 &amp; 0.1 \\
2 &amp; 0.04 \\
3 &amp; 0.027 \\
4 &amp; 0.0256 \\
5 &amp; 0.03125
\end{array}
$$
So in this setting the error probability is minimized for $k = 4$. Since $k$ also effects the running time, we might as well choose $k = 3$ for these parameters, for which the error probability is almost as good.