logowanie

matematyka » forum » forum zadaniowe - zadania różne » zadanie

Inne, zadanie nr 152

ostatnie wiadomości  |  regulamin  |  latex

AutorZadanie / Rozwiązanie

agusiaczarna22
postów: 106
2014-01-14 18:29:06

Mam napisane w programie C++ metode haszowania tak:


using namespace std;

void haszowanie(int tab[], int klucz);

int main()
{
int tab[100]={0},n,klucz;
cout << "Podaj ilosc elemetow n: ";
cin >> n; //wprowadzenie liczby n z klawiatury
for(int i=0; i<n; i++)
{
cout << "Podaj element nr: " << i+1 << ": ";
cin >> klucz;
haszowanie(tab, klucz);
}
for(int j=0; j<100; j++)
{
cout << tab[j] << ", ";
}
cout << endl;
return 0;
}

void haszowanie(int tab[], int klucz)
{
int indeks,sukces=0,licznik_kolizji=0,indeks_bez_kolizji;
indeks=klucz%100;
indeks_bez_kolizji=indeks;
while(!sukces)
{
if(!tab[indeks])
{
tab[indeks]=klucz;
sukces=1;
}
else // kolizja! jezeli arg. pierwszy nie jest spelniony
{
licznik_kolizji++;
indeks=(indeks_bez_kolizji+licznik_kolizji*(klucz%101+1))%103;
if(indeks>=100) indeks=0;
}
}
}

Wszystko działa.Problem w tym, że nie wiem na czym ona polega i co tutaj się dzieje w tym??Musze też wskazać jaki tu jest przepis na to haszowanie w jaki sposób ono tutaj polega a także te funkcje lokaluzująca muszą być sprzężone. Jestem w tym zieona:( Błagam o pomoc.



strony: 1

Prawo do pisania przysługuje tylko zalogowanym użytkownikom. Zaloguj się lub zarejestruj





© 2019 Mariusz Śliwiński      o serwisie | kontakt   drukuj