Consider the Bloom filtering. Suppose we have n bits of memory available, and our set S has m members. Instead of using k hash functions, we could divide the n bits into k arrays, and hash once to each array. As a function of n, m, and k, what is the probability of a false positive? How does it compare with using k hash functions into a single array? Solution Answer Probability of giving a false positive, that may be incorrectly return than an element is in a set when it is not. For many applications, the probability of false positive can be made sufficiently small and the space saving are significant enough that bloom filters are useful. The fact that one bit was set to 1 affects the probability of other bits being set to 1. In practice the effect is negligible .we make simplify assumptions of independence of the bit values in the Array. The overall probability of this first case is p(1 ecnk/m). Hence q = 2p(1 ecnk/m)=2p(1 pc) False positive rate can be calculated in a straight forward approach assuming the hash functions output are perfectly random. After all the elements of S are inserted into the bit array, the probability of specific bit is still 0 is (1 - 1/m)kn ~~ e -kn/m p = e -kn/m the probability of a false positive is (1 - (1 - 1/m)kn) k ~~ (1-p)k Note that when k = (m=n) ln 2, p equals 1=2, we have a Minimum false positive rate for the given m and n values .