Полная версия этой страницы:
Хэш функции
Вот разбираюсь с Хэш функциями, нужно написать свою для примера. (естественно с как можно меньшим числом коллизий)
Не очень сложную, я не гуру)) (на строках)
У нас есть наверное самый простой пример: сумма всех кодов символов строки. Или квадрат кодов.
А вот что то отличное от этого не получается придумать. Подскажите?
Нагуглить толком не получилось.
tolich
16 Jun 2013, 22:13
Цитата(packa @ 16 Jun 2013, 22:07)

У нас есть наверное самый простой пример: сумма всех кодов символов строки. Или квадрат кодов.
Не катит, потому что не зависит от порядка символов.
Посмотри
Adler32.
feanor
16 Jun 2013, 22:36
А чо б готовую не спереть?
Цитата
Не катит, потому что не зависит от порядка символов.
Катит, но количество коллизий OVER 9000. Очень плохая хеш функция, но тем не менее это она
Цитата
А чо б готовую не спереть?
За ними и пришел) Нагуглить толкового не смог
Адлер понял, ок. Только это не сильная модификация исходного) в плане идеи
UnSchtalch
16 Jun 2013, 22:51
А чем MD5-то не угодил? Вроде как и пишется даже самостоятельно хорошо, и с коллизиями дело довольно неплохо.
hippocamus
16 Jun 2013, 23:36
Сделай MD5 кодирование строки. Не нравится MD5 - сделай UUE.
Является ли " код максимального символа из подстроки" хэш функцией?
hippocamus
20 Jun 2013, 22:59
Нет. Это строковые функции. Хоть и нестандартная, но её суть - ограничить ANSI диапазон.
feanor
20 Jun 2013, 23:50
Цитата
Является ли " код максимального символа из подстроки" хэш функцией?
Упорото как-то. Лучше xor всех четырехбайтовых блоков символов, и то лучше.
И я офигел от такой упоротости) ляпнул что да, но будет очень много коллизий. Единственное за что снизили) 90\100 )
hippocamus
21 Jun 2013, 00:19
Не, пакка, честно. В одну строку напишу такую на делфях. Но, понимаю, тебе в php надо?
Всмысле? Вопрос уже закрыт)
Просто мне нужно было на экзамен пару примеров нестандартных вот и все) Кстати попался именно этот билет)) Мне определенно повезло)
Кстати, прост интересно, откуда php взял? У меня вообще лиспообразный ужасный scheme)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.