Zivjo!

Andra` Tori wrote:

> > Trenutno mi je to kar imam dovolj. Ce bo potreba bom naredil se hash
> > implementacijo. Vseakor pa CRC modela ne mislim ven spustiti, primerjanje
> > stevil je se vedno manj zahtevno kot primerjanje stringov.
> 
> Sicer ne wem tocnih razlik,ampak crc je bil zelo premisljeno izdelan za
> 
> Kako se pa crc obnese pri radikalno razlicnih podatkih celo razlicnih

CRC je ekvivalenten deljenju polinomov:
In deliti 4K velik polinom z 4B zna biti malce pocasno.

Seveda je veliko odvisno od tega koliko so to konstantni nizi, vendar
bi jaz na Davidovem mestu raje uporabil navaden checksum, ki samo
sesteva in zanemari overflow.

#define defHASH=((unsigned long int)(0x445FA67))

inline unsigned long int checksum(char *string) {
  register unsigned long int checksum=defHASH;
  for(register int i=0;string[i];i++) {
    checksum+=string[i];
  }
  return checksum;
}

ali morda obte�eni checksum:

inline unsigned long int checksum(char *string) {
  register unsigned long int checksum=defHASH;
  for(register int i=0;string[i];i++) {
    checksum+=string[i]*10*(i%3+1);
  }
  return checksum;
}

Prednost pred CRCjem je, da se checksum hitreje izracuna
vendar spregleda ve� "napak".

lp,
Rok.

Reply via email to