collisions for common groups of strings in particular"temp and "temp collide using this functionas do "stop""tops""pots"and "spota better hash code should somehow take into consideration the positions of the xi ' an alternative hash codewhich does exactly thisis to choose nonzero constanta  and use as hash code the value an- an- xn- xn- mathematically speakingthis is simply polynomial in that takes the components ( xn- of an object as its coefficients this hash code is therefore called polynomial hash code by horner' rule (see exercise - )this polynomial can be computed as xn- (xn- (xn- ( ( ax ))intuitivelya polynomial hash code uses multiplication by different powers as way to spread out the influence of each component across the resulting hash code of courseon typical computerevaluating polynomial will be done using the finite bit representation for hash codehencethe value will periodically overflow the bits used for an integer since we are more interested in good spread of the object with respect to other keyswe simply ignore such overflows stillwe should be mindful that such overflows are occurring and choose the constant so that it has some nonzerolow-order bitswhich will serve to preserve some of the information content even as we are in an overflow situation we have done some experimental studies that suggest that and are particularly good choices for when working with character strings that are english words in factin list of over , english words formed as the union of the word lists provided in two variants of unixwe found that taking to be or produced less than collisions in each casecyclic-shift hash codes variant of the polynomial hash code replaces multiplication by with cyclic shift of partial sum by certain number of bits for examplea -bit cyclic shift of the -bit value is achieved by taking the leftmost five bits and placing those on the rightmost side of the representationresulting in while this operation has little natural meaning in terms of arithmeticit accomplishes the goal of varying the bits of the calculation in pythona cyclic shift of bits can be accomplished through careful use of the bitwise operators >taking care to truncate results to -bit integers