to reviewwe convert word into huge number by multiplying each character in the word by an appropriate power of hugenumber ch * ch * ch * ch * ch * ch * ch * ch * ch * ch * thenusing the modulo (%operatorwe squeeze the resulting huge range of numbers into range about twice as big as the number of items we want to store this is an example of hash functionarraysize numberwords arrayindex hugenumber arraysizein the huge rangeeach number represents potential data item (an arrangement of letters)but few of these numbers represent actual data items (english wordsa hash function transforms these large numbers into the index numbers of much smaller array in this array we expect thaton the averagethere will be one word for every two cells some cells will have no wordsand some more than one practical implementation of this scheme runs into trouble because hugenumber will probably overflow its variable sizeeven for type long we'll see how to deal with this later collisions we pay price for squeezing large range into small one there' no longer guarantee that two words won' hash to the same array index this is similar to what happened when we added the letter codesbut the situation is nowhere near as bad when we added the lettersthere were only possible results (for words up to lettersnow we're spreading this out into , possible results even soit' impossible to avoid hashing several different words into the same array locationat least occasionally we' hoped that we could have one data item per index numberbut this turns out not to be possible the best we can do is hope that not too many words will hash to the same index perhaps you want to insert the word melioration into the array you hash the word to obtain its index numberbut find that the cell at that number is already occupied by the word demystifywhich happens to hash to the exact same number (for certain size arraythis situationshown in figure is called collision figure collision