So I'm watching an Algorithms course in Coursera, and we are currently discussing hash tables. He's talking about the importance of a good hash function, and about how an ideal hash function would be a "super clever hash function guaranteed to spread every data set evenly". Then he explains that the problem is that such a hash function does not exist (and that for every hash function there is a pathological data set), and that the reason for this is as follows: fix a hash function h: U -> {0, 1, 2, ..., n-1} => **a la Pigeonhole Principle, there exists a bucket i such that at least |U|/n elements of U hash to i under h.** => if data set draws only from these, everything collides. The bolded part is what's confusing me. Why does there exist a bucket i such that at least |U|/n elements of U hash to i under h? I can't really visualize what he means