I am a newbie in PostgreSQL and joining a course. There is a assignment that i need to finish. But I do not know how to finish. Could you help:
“In this assignment you will write a simple hashing function that uses addition and multiplication and then find a pair of strings that will return the same hash value for different strings.
The algorithm uses multiplication based on the position of a letter in the hash to avoid a hash collision when two letters are transposed like in ‘ABCDE’ and ‘ABDCE’. Your strings need to be at least three characters long and no more than 10 characters long.
Here is the code that computes your hash:
while True:
txt = input(“Enter a string: “)
if len(txt) < 1 : break
hv = 0
pos = 0
for let in txt:
pos = ( pos % 3 ) + 1
hv = (hv + (pos * ord(let))) % 1000000
print(let, pos, ord(let), hv)
print(hv, txt)
For simplicity we will only use upper and lower case ASCII letters in our text strings.
Enter a string: ABCDE
A 1 65 65
B 2 66 197
C 3 67 398
D 1 68 466
E 2 69 604
604 ABCDE
Enter a string: BACDE
B 1 66 66
A 2 65 196
C 3 67 397
D 1 68 465
E 2 69 603
603 BACDE
Now i need to enter your two strings below and check if they cause a collision:
String 1… /String ….
What should I need to enter?
Thanks and hope can get your support
Sarah
Try entering some string in String 1 and String 2, but always get error
Sarah Nguyen is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.