Tarkastellaan vielä aiemman tehtävän hajautusfunktiota:
Parametrit ovat samat kuin aiemmin eli ja .
Toteuta tiedostoon collision.py
funktio find_other
, jolle annetaan parametrina merkkijono. Funktion tulee palauttaa jokin toinen merkkijono, jolla on sama hajautusarvo.
Funktiolle annettava merkkijono muodostuu merkeistä a
-z
ja siinä on enintään merkkiä. Funktion tulee palauttaa merkkijono, joka täyttää samat vaatimukset.
Funktion tulee toimia tehokkaasti ja palauttaa toinen merkkijono välittömästi.
def hash_value(string): # voit lisätä tämän funktion aiemmasta tehtävästä testaamista varten def find_other(string): # TODO if __name__ == "__main__": string1 = "kissa" string2 = find_other("kissa") print(string1, hash_value(string1)) # kissa 2905682 print(string2, hash_value(string2)) # zfgjynuk 2905682
Yllä olevassa koodissa on esimerkki siitä, miten funktio find_other
voisi toimia. Kun toteutat funktion itse, sen ei kuitenkaan tarvitse palauttaa juuri merkkijonoa zfgjynuk
vaan minkä tahansa vaatimusten mukaisen merkkijonon, jonka hajautusarvo on oikea.