|
|
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
Уже день голову ломаю, не могу придумать достаточно хороший алгоритм. Есть набор шаблонов [p1, p2, ..., pN], где N - количество шаблонов. Есть набор наборов значений [{i1, [v11, ...]}, {i2, [v21, ...]}, ..., {iI, [vI1, ...]}], где i* - уникальный идентификатор набора значений, v** - сами значения соответственно, причем количество значений в каждом наборе значений произвольно, но в 99.99% случаев достаточно мало (меньше 5). Нужно получить количество уникальных идентификаторов, в любое из набора значений которого входит любой из шаблонов. Или иначе (если это сильно поменяет алгоритм): нужно проверить, превышает ли количество уникальных идентификаторов, в любое из набора значений которого входит любой из шаблонов некоторый порог. Язык реализации - Erlang, но даже если вы с ним незнакомы, но есть мысли насчет алгоритма - предлагайте, попробую сам адаптировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 10:31 |
|
||
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
an0nymНужно получить количество уникальных идентификаторов, в любое из набора значений которого входит любой из шаблонов. Или иначе (если это сильно поменяет алгоритм): нужно проверить, превышает ли количество уникальных идентификаторов, в любое из набора значений которого входит любой из шаблонов некоторый порог. Входит слева, т. е. любое из значений в наборе начинается с любого из шаблонов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 10:32 |
|
||
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
Количество шаблонов достаточно мало (пусть будет до 10), количество уникальных идентификаторов (и наборов значений) весомо (от сотен до тысяч). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 10:34 |
|
||
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
так шаблоны и значения - списки? так Пролог так и работает - в основе сопоставления с образцами А у Erlang насколько интересовался в выражениям языка можно писать как на Прологе. Хотя вот не уверен - работает всё по-прологовски. P.S. Известно, что реализация не как во всех Прологах (хотя в каждом Прологе есть свои отличия в реализациях, но не в фундаментальных надалгоритмах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 14:01 |
|
||
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
AlexandrPlusтак шаблоны и значения - списки? так Пролог так и работает - в основе сопоставления с образцами А у Erlang насколько интересовался в выражениям языка можно писать как на Прологе. Хотя вот не уверен - работает всё по-прологовски. P.S. Известно, что реализация не как во всех Прологах (хотя в каждом Прологе есть свои отличия в реализациях, но не в фундаментальных надалгоритмах). тьфу, хотел подчеркнуть - вот жеж админы форума редактирование запретели (хотя бы первые 10 минут) AlexandrPlusтак шаблоны и значения - списки? так Пролог так и работает - в основе сопоставления с образцами А у Erlang насколько интересовался в выражениям языка можно писать как на Прологе. Хотя вот не уверен - работает всё по-прологовски. P.S. Известно, что реализация не как во всех Прологах (хотя в каждом Прологе есть свои отличия в реализациях, но не в фундаментальных надалгоритмах). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 14:04 |
|
||
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
AlexandrPlus, я не понимаю, как написать паттерн "входит слева". Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 14:15 |
|
||
|
Получить количество пересечений набора шаблонов с набором наборов значений
|
|||
|---|---|---|---|
|
#18+
an0nym, То есть - список является началом другого А Erlang-то - как Пролог работает-то или иначе? Выражения вроде аналогичны и заявлено, что и как Пролог может, но - реально? На Прологе (SWI и Amzi под рукой есть) - так например Код: plaintext 1. подсписок в любом месте списке podspis(X,Y):-append(_,L,Y),append(X,_,L). append - встроеный, но можно расписать - конкатенация то есть это konkat([],T,T). konkat([X|T1],T2,[X|T3]):-konkat(T1,T2,T3). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2011, 17:53 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1343038]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 544ms |

| 0 / 0 |
