Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Привед други! Как всегда. Илья. Сова. Дима-Т. И все-все. В продолжение темы Работа с большими данными Автор затих и топик не имеет продолжения. Я решил что зря. Тема хорошая и ее стоит возобновить. Значит так. Дано: текстовый файл большого размера. Для простоты в 2-4 раза превышающий объем оперативной памяти. Найти: список уникальных строк из этого файла. Время поиска должно быть минимально настолько, насколько это возможно. Ограничения: 1. Будем считать что максимальная длина строки - 64 килобайта. Просто договоримся что исходные данные таковы. Так будет проще. 2. Кодировка ASCII. 1 байт на символ. Семантика символов 127-255 - на наше усмотрение. 3. Алгоритмы и структуры данных - любые. Все что есть. 4. Сторонние библиотеки юзать можно. Главное чтоб были в наличии исходники и чтоб мы поняли суть алгоритма. 5. Базы данных - не используем. 6. Сортировка уникальных в данных в результате нас не интересует. То есть мы не ставим такой задачи. Главное - сделать уникальность. Пример usecase: Код: sql 1. Результат - файл с уникальным набором строк. Go! Go! Хардкод приветствуется! С/С++ Moar хардкода! Можно и ассемблер. P.S. Я еще не написал ни строчки кода по сабж. Пока только мысли Поэтому go-go! Примечание №1 Можно многократно сканировать исходный текстовый файл для достижения полезного эффекта. Собирать статистику. Делать какие-то примерные оценки или прикидывать размеры. Главное - чтоб общее время работы алгоритма было минимально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 21:48 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton, тестовые данные - приготовил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 21:51 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Ссылок на тестовые данные я подкину позже. В крайнем случае - сгенерю. Не вижу проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 21:52 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton, а мой ответ из первой темы был слишком сложен и недопонят ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 22:36 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Siemargl, это грубо. К чему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 23:04 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonSiemargl, это грубо. К чему так?Где тут грубость? Берем хеш таблицу по строкам и всё. У меня встречный вопрос - неужели так нечем заняться (хотя бы контрибутить в реальные проекты(.)(.), чтобы придумывать искусственные задачи уровня школьников(даже не олимпиадные) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 23:13 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Siemargl, ты уверен что твой метод сработает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 23:15 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton, В чем у тебя сомнения ? Если хэш совпал, достаточно перепроверить содержимое. Для таблицы хэшей памяти хватит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 23:18 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Siemargl, worst case? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 23:20 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonSiemargl, worst case?Сама задача. Слишком просто. http://nedoblog.ru/физики-против-математиков/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 23:22 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Задним числом я поредактировал тему. Добавил важное ограничение касающееся минимизации времени работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 09:12 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Тут интересен примерный размер результата, влезет он в память или нет, из этого надо исходить, в том топике я задавал этот вопрос, но ТС пропал и вопрос остался без ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 13:32 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
SiemarglДля таблицы хэшей памяти хватит. а если сам файл из подобных хэшей состоит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 13:38 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Если при проходе хеши перестают влезать в память - придется поделить хеши на "маска 3-6 бит + остальной хеш" и устроить несколько проходов для разных масок. Если за первый проход посчитать распределение по маскам - самые "непопулярные" маски можно объединять и обрабатывать за 1 проход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 13:57 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
ИзопропилSiemarglДля таблицы хэшей памяти хватит. а если сам файл из подобных хэшей состоит? Я если честно не понял причин раздражения Зямы. Он считает что создал алгоритм? Хм... его работоспособность надо доказать. Возможно речь идёт о двух-фазной работе где вторая фаза осуществляет некую зачистку ключей. Но здесь я миллионный раз бью себя по рукам. Я допускаю свою собственную ошибку пытаясь влезть в моск к другому разработчику и ДОДУМАТЬ то что было сказано. Я так больше не делаю. Я умолкаю и даю возможность ему описать то что имелось в виду на уровне формальных steps алгоритма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 14:08 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Еще раз редактирую описание. Ввожу примечание. (Внизу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 14:10 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Dima TТут интересен примерный размер результата, влезет он в память или нет, из этого надо исходить, в том топике я задавал этот вопрос, но ТС пропал и вопрос остался без ответа. В наихудшем сценарии в файле будет (к примеру 2 строки дубля) все остальные - уникальны. Мы не укладываемся в память если будем брать unsortable_map. Нужно думать как работать с пачками или порциями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 16:32 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton, Дано: текстовый файл большого размера. Найти: список Создать файл-результат состоящий только из уникальных строк из этого файла.Для простоты в 2-4 раза превышающий объем оперативной памяти. Важно знать или указать не соотношение файл/память, а возможно ли разместить хеши+смещения всех строк или только "1/128" часть в оперативной памяти? Ссылок на тестовые данные я подкину позже. В крайнем случае - сгенерю. Не вижу проблемы.Давай, будем попробовать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 21:03 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Bred eFeMВажно знать или указать не соотношение файл/память, а возможно ли разместить хеши+смещения всех строк или только "1/128" часть в оперативной памяти? Я не очень понимаю о каком соотношении вы говорите. Давайте проще. Есть текстовый файл. Необходимо эффективно решать вопрос поиска уникальных строк. Я обратил внимание (очень давно) что решать эту задачу эффективно можно только для файлов небольшого размера. Как только наши структуры данных превышают доступную физическую память - начинается резкое замедление работы этих структур данных. Поэтому я ставлю задачу. Найти алгоритм или метод решения унификации текстового файла при условии когда его размер хотя-бы в два раза превышает доступную физическую память. И я не могу ответить на ваш вопрос о "хешах и смещениях". Возможно вы сами ответите на него в процессе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:12 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
mayton, нужно взять в руки кувалду - отсортировать файл любым алгоритмом внешней сортировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:15 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
Изопропил, вы готовы доказывать в топике что сортировка будет эффективно решать мою задачу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:21 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
maytonИзопропил, вы готовы доказывать в топике что сортировка будет эффективно решать мою задачу? она будет гарантированно её решать. метрики - у Кнута в третьем томе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:27 |
|
||
|
Тяпничная унификация
|
|||
|---|---|---|---|
|
#18+
ИзопропилmaytonИзопропил, вы готовы доказывать в топике что сортировка будет эффективно решать мою задачу? она будет гарантированно её решать. метрики - у Кнута в третьем томе. Прекрасно. Я рад что есть оппозиция. Только я в скобках замечу что сортировка - это minor. Это не главная задача в топике. Вы проводите допущение что решить сортироку - решить унификацию. А я с этим не согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 22:30 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39514439&tid=2018073]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 282ms |

| 0 / 0 |
