Combinatorics, a subject dealing with ways of arranging and distributing objects, involves ideas from geometry, algebra, and analysis. The breadth of the theory is matched by that of its applications, which include topics as diverse as codes, circuit design and algorithm complexity...