Probability and computing : randomization and probabilistic techniques in algorithms and data analysis - Mitzenmacher, Michael, 1969- (Cambridge University Press, 2017)