Re: Разбиение строк на классы по одинаковым словам
От: watch-maker  
Дата: 13.05.13 17:06
Оценка:
Здравствуйте, free.rFczZZ, Вы писали:

FR>Задача в следующем: есть множество строк s∈S, для каждой из них получаем терм t = φ(s) — множество "индесов" (внутри терма все уникальны, изначально не отсортированы). Нужно выделить группы термов у которых совпадают минимум n индексов. Полученные группы не должны пересекаться (порядок нахождения не важен). Пример:

FR>
FR>t1: ABCD
FR>t2: +BA+
FR>t3: EDB+
FR>t4: ++AB
FR>

FR>+ — какието уникальные индексы.
FR>для n=2 получим {AB: t1,t2,t4}.

FR>Собственно, нужен алгоритм отличный от попарного сравнения. Может как-то хэшировать? Не могу сформурлировать задачу "для гугла".

Тут для людей сначала нужно задачу сформулировать.
Сейчас можно просто помещать каждый терм в свою группу. Очевидно, в силу этого группы между собой не пересекаются, а число совпадающих индексов внутри каждой группы равно длине терма-члена (то есть либо не меньше n, либо решения не существует ни при каких других разбиениях) — идеальное решение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.