Perfekt hashfunktion för atomer

Ett atomnamn kan bestå av enbart en stor bokstav (t ex bor "B" eller en stor bokstav följt av en liten (t ex kalcium "Ca")

Numrera a=1, b=2, ..., z=26 och A=0, B=27, ..., Z=675 (dvs 25*27) och låt hashfunktionen vara summan av bokstävernas nummer. Vi får alltså

atom hash(atom)
A 0
B 1*27
C 2*27
Z 25*27
Aa 0*27+1
Ba 1*27+1
Ca 2*27+1

Då blir hash("A")=0 och hash("Zz")=701, så det behövs 702 platser i hashtabellen (dvs ca sex gånger mer än antalet element). Detta är en perfekt hashfunktion - alla atomnamn får unika hashvärden. Ingen extra luft behövs - det blir inga krockar!

OBS! I hash-labben ska du inte skapa en perfekt hashfunktion utan istället använda krockhantering.