Hashing, continued We finished up the discussion of open address hashing. The rest of the lecture was devoted to universal hashing, which is covered in CLR 12.3.3. The only thing we did differently in lecture from CLR was the way we broke up the key x to be hashed in the definition of our universal class of hash functions. We wrote x = x_0 + x_1 m + x_2 m^2 + ... + x_{t-1} m^{t-1} where m is the size of the hashtable (assume m prime). That is, we express x in base m, where x_0, x_1,... are the base-m digits. The hash functions in the universal class are given by t-1 h_a(x) =def= sum a_i x_i, i=0 where a = (a_0,...,a_{t-1}) and 0 <= a_i < m for all i, 0 <= i < t. Thus there are m^t possible hash functions, one for each choice of the t a_i's.