Probability and computing : an introduction to randomized algorithms and probabilistic analysis - Mitzenmacher, Michael, 1969- (Cambridge University Press, 2005)