@ru_python

Страница 6484 из 9768
Aragaer
11.09.2018
12:35:19
опять греп же. Для тех, которые есть, что-то найдется. Если нет, ничего не найдется

slair
11.09.2018
12:36:35
про греп было много статей что виснет, может уже исправили, но все ли обновились

Basil
11.09.2018
12:36:47
нет, я знаю линейный способ, если битовое представление чисел из строк влезает в память. взвести в битовом массиве биты, соответствующие числам из первого, потом сбросить биты по числам из второго, потом проход по битам, с выводом чисел, по взведенным битам в результат.

Iliya
11.09.2018
12:36:50
у тебя есть список строк и ты хочешь проверить, есть ли они в файле?
ну что-то вроде Опять есть уже финальный формата FILE_1 и есть еще 417 строк формата FILE_2 И в идеале узнать есть ли какая-то из 417 строк в FILE_1 Тем же грепом grep -wvFf file7 file1 > output

Google
Aragaer
11.09.2018
12:37:42
без -v

если output пустой, значит никого не нашлось

кто найдется, тот попадет в output

Artsiom
11.09.2018
12:38:51
не верю я в линейный проход
Этот алгоритм работает за O(n) - линейней некуда

Aragaer
11.09.2018
12:39:11
после сортировки - да, линейно

но сама сортировка это не линейно 8)

Artsiom
11.09.2018
12:39:22
без сортировки

Aragaer
11.09.2018
12:39:44
а без сортировки каждый с каждым

Artsiom
11.09.2018
12:40:08
Если придераться за O(n+m) - n - количество строк в первом файле, m - количество строк во втором

Aragaer
11.09.2018
12:40:11
for line in source: if line not in f2_set

я вижу n*m

Artsiom
11.09.2018
12:40:18
Где там каждый с каждым?

Aragaer
11.09.2018
12:40:43
хотя .. я не знаю, за какое время работает in для сетов

Google
Artsiom
11.09.2018
12:40:51
f2_set - это set проверка на вхождение во множество работает за O(1)

Aragaer
11.09.2018
12:41:02
ок, тогда тонкое время это создание сета

оно медленнее, чем линейное

Iliya
11.09.2018
12:41:16
без -v
без v в out положит то что повторяется, а с v то уберет в FILE_1 если буде совпадение, я правильно все понял?

Artsiom
11.09.2018
12:41:24
O(n) время создание сэта

Aragaer
11.09.2018
12:42:26
ок, я не силен в волшебных алгоритмах, когда поиск в словаре делается за константу (которая на самом деле достаточно большая, чтобы в нее поместился какой-то логарифм)

я человек простой - нужно для N объектов придумать хэш без коллизий, значит минимум logN

Artsiom
11.09.2018
12:43:34
https://wiki.python.org/moin/TimeComplexity

Artem
11.09.2018
12:43:46
слова пхпешника
Слова человека, который писал под sed/awk и знает как выставить иерархию регулярок

А и да

Artsiom
11.09.2018
12:43:59
Да там будет константа но в 99.99% случаев время будет O(n)

Artem
11.09.2018
12:44:05
На sed шахматы даже писали

Aragaer
11.09.2018
12:44:37
The Average Case times listed for dict objects assume that the hash function for the objects is sufficiently robust to make collisions uncommon.

slair
11.09.2018
12:44:54
Слова человека, который писал под sed/awk и знает как выставить иерархию регулярок
не всегда стоит юзать регулярки, если можно обойтись без них

Artsiom
11.09.2018
12:45:07
Это ассимптотическая оценка алгоритма. Если подробрать элементы в файлах так что бы там были одни колизии то тут вообще квардатичное время будет

Artem
11.09.2018
12:45:51
не всегда стоит юзать регулярки, если можно обойтись без них
Оке, а как мне конпелятор совсем без регулярок написать ?

Artsiom
11.09.2018
12:45:58
Но это будет быстрее чем сортировка

slair
11.09.2018
12:46:00
не писал на пхп, но знакомые пхпешники юзали регулярки всегда и всюду

Aragaer
11.09.2018
12:46:13
ну вот говорится, что там константа, но реально эта константа зависит от количества элементов - чтобы не было коллизий.

slair
11.09.2018
12:46:16
отсюда и мнение такое

Google
Aragaer
11.09.2018
12:46:45
если ты зафиксируешь количество элементов, то сразу получишь эту константу. Но на практике ее можно сразу оценить снизу - и эта оценка будет логарифм

Artsiom
11.09.2018
12:46:47
не писал на пхп, но знакомые пхпешники юзали регулярки всегда и всюду
Потому что в PHP с самого начала были нормальные регулярки а в питоне до какой-то там 3.x версии много чего в регулярках не было.

Basil
11.09.2018
12:46:56
поскольку данные нам известны, то подобрать идальную для этого случая хеш-функцию вполне реально, вопрос -нужно ли.

Aragaer
11.09.2018
12:47:11
условно - поиск в дереве это логарифм. Но если мы скажем "для дерева глубиной не более 5, это константа"

и это будет честно

Artsiom
11.09.2018
12:47:23
Там нету никакого дерева

Aragaer
11.09.2018
12:47:24
а для дерева не глубже 6 - другая константа

там нет, там есть вычисление хэша

slair
11.09.2018
12:47:47
а я их типа не осилил, как они считают, а я считаю и без них есть жизнь

Aragaer
11.09.2018
12:47:47
я просто привожу другую аналогию

так, через 10 минут мне уже домой уходить, а надо бы хоть чуть-чуть поработать

Basil
11.09.2018
12:48:48
я уже привёл идеальную хеш функцию - сами числа.

Евгений
11.09.2018
12:49:26
Git доступен ?

https://github.com/

Tigran
11.09.2018
12:50:16
За VPN доступен

Евгений
11.09.2018
12:51:06
а без впн у кого-то работает ?

Artsiom
11.09.2018
12:51:17
Дмитрий
11.09.2018
12:51:23
slair
11.09.2018
12:51:30
я вполне юзаю регулярки, типа http://ix.io/1pRm

Google
?? Eugene
11.09.2018
12:51:34
Работает

Artem
11.09.2018
12:51:37
Git доступен ?
github, gitlab, aur

Дмитрий
11.09.2018
12:51:38
Узбекистан, UzbekTelecom

Artem
11.09.2018
12:52:13
Мда

Artyem
11.09.2018
12:52:14
slair
11.09.2018
12:52:35
а с грепом приходится придумывать находу

Artem
11.09.2018
12:52:52
Сочувствую so 2 speak. Можно уже сразу vps с тор мостами покупать

slair
11.09.2018
12:53:22
а что не так, то яндекс упал, то теперь гит

Admin
ERROR: S client not available

Iliya
11.09.2018
12:53:50
на зато получилась интересная дискуссия, но я для себя решил, что в идеале надо написать какой-нибудь красивый алгоритм, так как возможно такая задача некоторое время будет встречаться часто

slair
11.09.2018
12:54:42
А с sed — нет
а что не так? он юзает другие либы для регекспов

Iliya
11.09.2018
12:55:08
не красивый, а эффектифный?
естественно, подумываю даже на С побаловаться, в свободное время

Artem
11.09.2018
12:55:13
Думал вы про вебморду

А не про то, как на неё закидывать коммит

Есть же ssh

slair
11.09.2018
12:55:55
я про греп, вы добавили что сед поступает иначе

Google
Artem
11.09.2018
12:56:31
Да, sed поступает несколько иначе

Даже чем ed

Artsiom
11.09.2018
12:57:19
на зато получилась интересная дискуссия, но я для себя решил, что в идеале надо написать какой-нибудь красивый алгоритм, так как возможно такая задача некоторое время будет встречаться часто
Алгоритм в лоб решает задачу за линейное время, файл быстрее не прочитать. Если они будут по терабайту, тогда решение в лоб не заработает. Но и там всё не сильно сложно.

Artem
11.09.2018
12:57:59
я про греп, вы добавили что сед поступает иначе
Artsi0m Niktonov: в опёнке есть man 7 regex, в посикс манах тоже что-то подобное находилось

slair
11.09.2018
12:58:35
это ж физически логично, или память или проц

быстрее не получится

и не факт что файл всосанный в память ускорит обработку

Artem
11.09.2018
13:03:00
slair
11.09.2018
13:03:41
что?

Artem
11.09.2018
13:04:02
Что ?

slair
11.09.2018
13:04:05
память проца?

Artem
11.09.2018
13:04:38
Ну, кэш L1, L2, L3 и т.д.

И регистры в конце концов

slair
11.09.2018
13:05:10
128 гиг ты вдуешь в кэш?

Artem
11.09.2018
13:05:34
И стек .pop и .push

128 гиг ты вдуешь в кэш?
Зачем ? Я туда лучше программу запихаю

Или то, что её запускает

Бензофуран
11.09.2018
13:06:26
Не проще читать из файла блоками?

slair
11.09.2018
13:06:40
кэш измеряется в мегабайтах

Artem
11.09.2018
13:06:48
Или то, что ей абстракции создаёт

Или то, что ей память раздаёт

Страница 6484 из 9768