|
Вариант для распечатки |
Пред. тема | След. тема | ||
Форумы Программирование под UNIX (Public) | |||
---|---|---|---|
Изначальное сообщение | [Проследить за развитием треда] |
"Хеш с нечеткими условиями для perl" | |
Сообщение от Solotony on 07-Июл-05, 10:30 (MSK) | |
существует-ли по perl модуль, реализующий хеш с условием вида "<=" ? | |
Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
Оглавление |
|
Индекс форумов | Темы | Пред. тема | След. тема |
Сообщения по теме |
1. "Хеш с нечеткими условиями для perl" | |
Сообщение от ihor on 07-Июл-05, 12:11 (MSK) | |
можно использовать qdbm (http://qdbm.sourceforge.net/), Villa API, но придётся подправить C-й код (добавить свою функцию сравнения) и скомпилировать модуль заново. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
2. "Хеш с нечеткими условиями для perl" | |
Сообщение от Solotony on 07-Июл-05, 12:34 (MSK) | |
а такое решение, не повлияет на остальные вещи, использующие gdbm? | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
3. "Хеш с нечеткими условиями для perl" | |
Сообщение от ihor on 07-Июл-05, 12:52 (MSK) | |
я имею в виду именно QDBM, а не GDBM, то есть на GDBM это никак не повлияет. что же касается QDBM, то при использовании API Villa, конструктор базы принимает в качестве аргумента указатель на функцию сравнения (в С), или одну из предопределённых констант (Perl). то есть мы в С описываем свою новую функцию сравнения, и указатель на неё експортируем в Perl в виде ещё одной константы (переменной). т.о. мы ничего не нарушаем из того, что было до нас, просто добавляем что-то новое, что будет использоваться только по желанию и только для конкретных баз. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
4. "Хеш с нечеткими условиями для perl" | |
Сообщение от Solotony on 07-Июл-05, 13:05 (MSK) | |
спасибо, а gdbm я действительно тормознул. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
5. "Хеш с нечеткими условиями для perl" | |
Сообщение от ihor on 07-Июл-05, 14:31 (MSK) | |
хотя, я подумал, это тоже не выход. в функции сравнения проверку на <= реализовать можно, но для поиска max, придётся перебирать всех, кто <=. а если это большое число, то получим полный перебор всего. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
6. "Хеш с нечеткими условиями для perl" | |
Сообщение от ihor on 07-Июл-05, 14:56 (MSK) | |
фактически, тебе нужно строить b-tree и потом реализовывать спуск до нужного узла. QDBM его и реализует, но к сожалению, нужной функции нет, т.ч. можно реализовать бинарный поиск по базе на C и експортироавать эту функцию в Perl. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
7. "Хеш с нечеткими условиями для perl" | |
Сообщение от Solotony on 07-Июл-05, 15:07 (MSK) | |
да, в том-то и дело, что не хочется делать полный перебор. так ведь хэш и так строится строится по принципу бинарного дерева? или не бинарного? | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
8. "Хеш с нечеткими условиями для perl" | |
Сообщение от ihor on 07-Июл-05, 16:42 (MSK) | |
нет, классические хеши (если точнее, ассоциативные массивы) строятся с использованием т.н. хеш-функций. идея такая: придумываем какую-нибудь функцию, кот. по нашим предполагаемым ключам будет строить числовые значения (хеши). разным ключам может соотв. один и тот же хеш. главное, чтобы таких ключей было не очень много. + важно, чтобы область значений такой функция была конечной. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
9. "Хеш с нечеткими условиями для perl" | |
Сообщение от Аноним on 08-Июл-05, 06:53 (MSK) | |
Посмотри Tie::RangeHash. | |
Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
Архив | Удалить |
Индекс форумов | Темы | Пред. тема | След. тема |
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |