Ask your own question, for FREE!
MIT 6.00 Intro Computer Science (OCW) 7 Online
OpenStudy (anonymous):

In Lecture 8, we are shown a hashing implementation (2nd one) which has trick for converting ch to ints. A loop (for c in str) has: val = val + shift*ord(c) shift +=1 I understand the ord() part, I'm just wondering why a multiplier (shift) is applied as well before adding to the val sum? Why not just use ord(c)?

OpenStudy (anonymous):

I can only guess that the shift is there to ensure that converting different strings produces different values. (I assume we don't want to end up with fake positive results when searching for certain strings) But I don't know how exactly the shift is solving the problem and Guttag really did not elaborate on that...

OpenStudy (anonymous):

That was my guess, too, but I don't see a guarantee of uniqueness there.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!