Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 May 11

A

András in IT KPI C/C++ ХВ (не UB)
Rabu
насколько это актуально для хеширования
я думав він просто хоче суму всіх цифер в числі отримати
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
András
я думав він просто хоче суму всіх цифер в числі отримати
функция то hashStr)
источник

R

Rabu in IT KPI C/C++ ХВ (не UB)
гешстрінґ
источник

A

András in IT KPI C/C++ ХВ (не UB)
Meow Sav
функция то hashStr)
норм ім'я для суми цифер
источник

A

András in IT KPI C/C++ ХВ (не UB)
та й чому хеш не може бути просто сумою цифер?
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Alex Master
Типичный чат по плюсам
Главное, чтобы джависты не спалили его тег статус, а то срач будет
источник

A

András in IT KPI C/C++ ХВ (не UB)
András
та й чому хеш не може бути просто сумою цифер?
буде міліард колізій, але біс із ними
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
András
та й чому хеш не може бути просто сумою цифер?
А так коллизий больше не станет ?
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
а ну во
источник

R

Rabu in IT KPI C/C++ ХВ (не UB)
меньше тоже не станет
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Есть топ идея, только препод не одобрит. Сделать функцию hashStr, а в ней заюзать std:hash xD
источник

A

András in IT KPI C/C++ ХВ (не UB)
Meow Sav
Есть топ идея, только препод не одобрит. Сделать функцию hashStr, а в ней заюзать std:hash xD
є ще краще ідея
int hash_str(std::String) {return 42;}
источник

A

András in IT KPI C/C++ ХВ (не UB)
зато швидко
источник

A

András in IT KPI C/C++ ХВ (не UB)
Nikitos )
ребят помогите разобраться почему не работает
які символи допускаються на вхід?
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
строка
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
любые буквы
источник

A

András in IT KPI C/C++ ХВ (не UB)
Nikitos )
любые буквы
Ну, якщо б були доступні тільки маленькі латинські букви, то на твоєму місці я б робив десь так
sum = (sum + (str[i]-'a'+1)*st[i])%mod;

де mod — просто дуже велике просте число(1е9+7 наприклад)
st — масив степенів простого числа за модулем мод(st[0] = 1, st[1] = 43%mod, st[2]=43*43%mod, st[3]=43*43*43%mod, ...)
источник

A

András in IT KPI C/C++ ХВ (не UB)
András
Ну, якщо б були доступні тільки маленькі латинські букви, то на твоєму місці я б робив десь так
sum = (sum + (str[i]-'a'+1)*st[i])%mod;

де mod — просто дуже велике просте число(1е9+7 наприклад)
st — масив степенів простого числа за модулем мод(st[0] = 1, st[1] = 43%mod, st[2]=43*43%mod, st[3]=43*43*43%mod, ...)
це просте число в st мало б бути більше за кількість кількість допустимих значень вхідного символу. Ну тобтом в даному випадку так як str[i]-'a'+1 вертає не більше ніж 26, тому це любе число, яке більше ніж 26. Міг взяти як 43, так і 29, 31, 37, ...
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
спассибо
источник

N)

Nikitos ) in IT KPI C/C++ ХВ (не UB)
источник