У меня есть набор строк, которые попадают парами Например, это три пары. Первая имеет две строки: «a», «1»алгоритм сжатия пучка (пары строк)
a,1
a,2
b,1
В моем проекте мне нужно сжать эти данные. Для приведенных данных сжатые данные. (Сжатые несжатое является декартово произведение)
{a} <=> {1,2}
{b} <=> {1}
Каков наилучший алгоритм придумать оптимальные сжимаются данные. Оптимально здесь меньше числа отображений Я мог бы написать простой скрипт, который создает хеш-таблицу с первой строкой. Несмотря на то, что он дает оптимальные сжатые данные в некоторых случаях (выше случая), но он не всегда. Например,
a,1
a,2
b,1
c,2
Хэш таблица с первой строкой в качестве ключа даст мне ниже сжатые данные
{a} <=> {1,2}
{b} <=> {1}
{c} <=> {2}
Но это не оптимальные сжатые данные. Я получу ниже сжатия, если я использовал вторую строку
{a,b} <=> {1}
{a,c} <=> {2}
Каков наилучший алгоритм сжатия данных?
Оба ваших примера не будут выдавать тот же результат при поиске. Например: вы ищете {a}, вы получите {1,2}, а во втором вы должны искать {a, b}, чтобы получить {1,2}. (поскольку его хэширование вы не можете просто найти {a}). Если вы не знаете, что искать, это может привести к возникновению проблемы. – kadoga
@kadoga, '{a, b}' представляет собой набор, а не ключ к хешу. – ikegami
@ kadoga - извините, я не понял.Они не используются для поиска, это просто сжатие – SAN