fixed, distinct keys , as is drawn randomly from , are independent random variables. Often it is inconvenient to achieve the perfect joint probability of due to rounding issues. Following, one may define a -independent family to satisfy: distinct and , Observe that, even if is close to 1, are no longer independent random variables, which is often a problem in the analysis of randomized algorithms. Therefore, a more common alternative to dealing with rounding issues is to prove that the hash family is close in statistical distance to a -independent family, which allows black-box use of the independence properties. Techniques Polynomials with random coefficients The original technique for constructing -independent hash functions, given by Carter and Wegman, was to select a large prime number , choose random numbers modulo , and use these numbers as the coefficients of a polynomial of degree whose values modulo are used as the value of the hash function. All polynomials of the given degree modulo are equally likely, and any polynomial is uniquely determined by any -tuple of argument-value pairs with distinct arguments, from which it follows that any -tuple of distinct arguments is equally likely to be mapped to any -tuple of hash values. In general the polynomial can be evaluated in any finite field. Besides the fields modulo prime, a popular choice is the field of size , which supports fast finite field arithmetic on modern computers. This was the approach taken by Daniel Lemire and Owen Kaser for CLHash. Tabulation hashing Tabulation hashing is a technique for mapping keys to hash values by partitioning each key into bytes, using each byte as the index into a table of random numbers (with a different table for each byte position), and combining the results of these table lookups by a bitwise exclusive or operation. Thus, it requires more randomness in its initialization than the polynomial method, but avoids possibly-slow multiplication operations. It is 3-independent but not 4-independent. Variations of tabulation hashing can achieve higher degrees of independence by performing table lookups based on overlapping combinations of bits from the input key, or by applying simple tabulation hashing iteratively. Independence needed by different types of collision resolution The notion of k''-independence can be used to differentiate between different collision resolution in hashtables, according to the level of independence required to guarantee constant expected time per operation. For instance, hash chaining takes constant expected