Why Bloom filter needs $\frac{m}{n}\ln{2}$ hash functions?
This is explained in Wikipedia. Given $n,m$, the false positive probability is
$$
\left(1 - \left(1 - \frac{1}{m}\right)^{kn}\right)^k.
$$
This is the quantity we want to minimize. While the exact expression is hard to minimize exactly, we can use the approximation
$$
\left(1 - \left(1 - \frac{1}{m}\right)^{kn}\right)^k \approx (1-e^{-kn/m})^k,
$$
which is good if $m$ is large. We can optimize the latter expression using calculus, and the result is some expression which is very close to $(m/n) \ln 2$. This is a calculation that I leave to you.