Witam serdecznie,
Mam taki klopot -
muszę stworzyć kod który będzie dla zbioru piętnasto-elementowego wypełnionego ciągami znaków zwracał wartości dla każdego elementu (ciągu znaków) po zastosowaniu funkcji hashującej opartej na algorytmie "Cicheliego"
ciąg np:
*char= {"ala","piesek", "koteczek"...}
ważne jest aby ala aal laa dawały inne wartości
Drugą częscią zadania jest algorytm który wyszukuje takie same słowa w takich ciągach (np 2 albo 3 ciągach) na podstawie wartości hashu
Problem jest taki że ten algorytm Cicheli dla takich samych ciągów ale w rożnych zbiorach zwróci różne wartości.
Druga część ma działać na zasadzie jakby łamania szyfrogramu..czy coś w ten sposób
Oto opis tego algorytmu "Cicheliego"

ALGORYTM CICHELLI
Służy do tworzenia funkcji haszującej dla łańcucha znaków. Ta funkcja ma postać:

H(słowo)= h(długość(słowo)+g(pierwszalitera(słowo)+g(ostatnialitera(słowo))mod (rozmiarT)

Funkcja g jest nieznaną funkcją o dyskretnych wartościach i należy ją utworzyć. Przypisuje ona wartości literom. Wartości te nie muszą być unikalne o ile wychodzi unikalna wartość h.
Utwórz algorytm realizujący tę funkcji dla przykładowego zbioru słów.

merkury length: 7, p/o:m/y h:7
wenus length: 5, p/o:w/s h:5
ziemia length: 6, p/o:z/a h:6
mars length: 4, p/o:m/s h:8
jowisz length: 6, p/o:j/z h:9
saturn length: 6, p/o:s/n h:0
uran length: 4, p/o:u/n h:4
neptun length: 6, p/o:n/n h:1
pluton length: 6, p/o:p/n h:2

Za jakiś czas podam kod który wyliczał wartości te dla slow powyżej