Anonymní profil Seph – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Seph – Programujte.comAnonymní profil Seph – Programujte.com

 

Příspěvky odeslané z IP adresy 90.177.133.–

Seph
C / C++ › Podivná hašovací funkce
12. 7. 2014   #192070

Jaj, toho sem si nevšiml. To je zdroj té nahodnosti.

Zasláno z mobilního telefonu.

Seph
C / C++ › Podivná hašovací funkce
11. 7. 2014   #192061

Nazdar vespolek,

potřeboval jsem udělat hash stringu. Moje hashovací funkce měla mizernou kvalitu (moc často vracela stejný hash), a tak jsem si našel nějakou na netu. Vypadala perfektně. Až do chvíle, kdy mi moje hašovací tabulka začala řvát errory. Po chvilce hledání chyby jsem nakonec neodvratně zamířil do zkopírované hašovací funkce. Jen tak pro srandu jsem ji nechal párkrát proběhnout nad stejným stringem, co bude vracet. No a pak jsem koukal. První hash byl vždy jiný než zbytek. Ta funkce prostě pro jeden string vracela dva hashe podle toho, kolikáté volání se stejným stringem to bylo. A teď proč sem píši. Mohl by někdo z vás objasnit, kde se v té funkci bere ten generátor náhodných čísel?? 

umsize hash(char * str)
{
    umsize result;
    for(; *str; ++str)
    {
        result += *str;
        result += (result << 10);
        result ^= (result >> 6);
    }
    result += (result << 3);
    result ^= (result >> 11);
    result += (result << 15);
    return result;
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý