
Denis
28.12.2016
20:50:42
На с++ 10^8 за секунду работает

Zart
28.12.2016
20:50:48
1300 сек - это около 20 мин же? и по три прогона..

Johnnie
28.12.2016
20:51:09
ну полчаса я навскидку сказал
но это было долго)

Google

Johnnie
28.12.2016
20:51:36
короче, 10^6
почему въебывает только 7ое ядро за всех?
или не ядро, а поток
как там
Количество ядер 4
Количество потоков 8
поток, да)

darkwoolf
28.12.2016
21:01:32
Сори что не по теме, но кто-то может помочь дописать прогу на С++
ооооочень нужно
капец как сильно

Andrei
28.12.2016
21:02:02
и що там?

darkwoolf
28.12.2016
21:02:03
??
http://ru.stackoverflow.com/questions/608958/%d1%81%d0%be%d1%80%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b0-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2%d0%b0-%d0%bf%d0%be-%d0%ba%d0%be%d0%bb%d0%b8%d1%87%d0%b5%d1%81%d1%82%d0%b2%d1%83-%d1%87%d0%b8%d1%81%d0%b5%d0%bb-%d1%84%d0%b8%d0%b1%d0%be%d0%bd%d0%b0%d1%87%d1%87%d0%b8

Maksim
28.12.2016
21:02:30

Google

Denis
28.12.2016
21:03:27

darkwoolf
28.12.2016
21:03:45
Желательно так сделать
без векторов

Denis
28.12.2016
21:03:57
Так это не с++, а си

darkwoolf
28.12.2016
21:04:24
ну можно и так сказать

Denis
28.12.2016
21:04:43
std::sort хотя бы можно?


Zart
28.12.2016
21:04:55
D:\>py -3
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import random, collections, timeit
>>>
>>> order, max_e = [random.randint(1, 50) for _ in range(10000)], 10
>>>
>>> def delete_nth(order, max_e):
... return [i for _, i in enumerate(order) if order[:_].count(i) < max_e]
...
>>>
>>> def delete_nth1(order, max_e):
... result = list()
... for i in order:
... if result.count(i) < max_e:
... result.append(i)
... return result
...
>>> def delete_nth_denis(order, max_e):
... res = []
... cnt = {}
... for i in order:
... if cnt.get(i, 0) < max_e:
... res.append(i)
... cnt[i] = cnt.get(i, 0) + 1
... return res
...
>>> def delete_nth_zart(order, max_e):
... def nth(e):
... cache = collections.defaultdict(int)
... def check(x):
... cache[x] += 1
... return cache[x] <= e
... return check
... return list(filter(nth(max_e), order))
...
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth_denis as delete_nth', number=10)
0.03768983554125646
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth_zart as delete_nth', number=10)
0.02771268537963316
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth as delete_nth', number=10)
11.019031613756344
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth1 as delete_nth', number=10)
1.0139135183354426
походу я выиграл 8)


darkwoolf
28.12.2016
21:05:00
Да, думаю
можно
Но мне почему то кажеться что лучше без него сделать))
НО думаю приймут

Denis
28.12.2016
21:06:12
Ну так у тебя числа считаются за экспоненту и сортировка за квадрат

Zart
28.12.2016
21:06:18
денис вызывает .гет дважды, плюс перекладывает из листа в лист аппендом
поэтому чуть-чуть медленнее выходит, думаю можно микрооптимизациями разогнать


Maksim
28.12.2016
21:07:07
from bs4 import BeautifulSoup
import requests
a=[]
def all_images_src(html):
soup = BeautifulSoup(html, "html.parser")
result = soup.findAll("img", src=True)
for i in result:
a.append(i.attrs["src"])
return a
assert all_images_src('<html><body><img src="https://upload.wikimedia.org/wikipedia/commons/b/bd/Struthio_camelus_portrait_Whipsnade_Zoo.jpg"/>') == ["https://upload.wikimedia.org/wikipedia/commons/b/bd/Struthio_camelus_portrait_Whipsnade_Zoo.jpg"]
assert all_images_src( ('<html><body><IMG src="test.jpg">\n'
'<p>Some text\n'
'<img SRC=\'well.png\'>\n'
'</p></body></html>') ) == ["test.jpg", "well.png"]
assert all_images_src('<html><body><p><a href="link.html">'
'<img alt="Just a test image" src="this is a test.jpg"><ul>' + "\n"
.join("<li><img src='img%04i.png'></li>" % i for i in range(1000)) +
"</ul></p></body></html>"
) == ['this is a test.jpg'] + ['img%04i.png' % i for i in range(1000)]

Denis
28.12.2016
21:07:08
А можно переписать на си и вообще разогнать

Maksim
28.12.2016
21:07:12
а почему проверка не работает?


Johnnie
28.12.2016
21:07:53
D:\>py -3
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:01:18) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import random, collections, timeit
>>>
>>> order, max_e = [random.randint(1, 50) for _ in range(10000)], 10
>>>
>>> def delete_nth(order, max_e):
... return [i for _, i in enumerate(order) if order[:_].count(i) < max_e]
...
>>>
>>> def delete_nth1(order, max_e):
... result = list()
... for i in order:
... if result.count(i) < max_e:
... result.append(i)
... return result
...
>>> def delete_nth_denis(order, max_e):
... res = []
... cnt = {}
... for i in order:
... if cnt.get(i, 0) < max_e:
... res.append(i)
... cnt[i] = cnt.get(i, 0) + 1
... return res
...
>>> def delete_nth_zart(order, max_e):
... def nth(e):
... cache = collections.defaultdict(int)
... def check(x):
... cache[x] += 1
... return cache[x] <= e
... return check
... return list(filter(nth(max_e), order))
...
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth_denis as delete_nth', number=10)
0.03768983554125646
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth_zart as delete_nth', number=10)
0.02771268537963316
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth as delete_nth', number=10)
11.019031613756344
>>> timeit.timeit('delete_nth(order, max_e)', 'from __main__ import order, max_e, delete_nth1 as delete_nth', number=10)
1.0139135183354426
походу я выиграл 8)
Завтра скину результаты моих тестов)


53r63rn4r
28.12.2016
21:08:54
Плиз, поработайте за меня
А я ток деньги заберу

Google

Igor
28.12.2016
21:10:57

Solyar
28.12.2016
21:10:58

Maksim
28.12.2016
21:11:04
не я
пробел чтоль,лол?

Igor
28.12.2016
21:13:03
а
гггггггггг
нет
рзабирайся сам))
(ниче не хотел обидного щас сказать, сорри если что)
не пробел, но да, еще как "лол"!

Maksim
28.12.2016
21:14:37
?
боюсь представить, насколько ошибка идиотская)

Igor
28.12.2016
21:14:57
попробуй запустить тесты по одному
даже не тесты, а просто функцию
на данных из тестов

Johnnie
28.12.2016
21:15:25
Ну чё за интриги, я же спать собрался:(

Igor
28.12.2016
21:15:34
ты про меня?

Johnnie
28.12.2016
21:15:38
Ну

Igor
28.12.2016
21:15:54
да никаких интриг
я пиздоглаз и в глаза ебусь
и ты в глаза ебешься
и Максим в глаза ебется

Google

Igor
28.12.2016
21:16:00
спать пора, короче

Johnnie
28.12.2016
21:18:27
Какая из них не работает?

Maksim
28.12.2016
21:18:37
2 и 3

Igor
28.12.2016
21:18:44
это смотря в каком порядке запускать :)
можно попробовать один и тот же тест запустить несколько раз

Solyar
28.12.2016
21:20:30

Igor
28.12.2016
21:20:44
(я да, я понял, что "кто")

Solyar
28.12.2016
21:21:01

Johnnie
28.12.2016
21:21:02
Бля, с телефона неудобно читать эту портянку

Igor
28.12.2016
21:21:17
(если ты про код Максима)

Solyar
28.12.2016
21:23:20
Что со мной не так?
PEP8 для лохов


Igor
28.12.2016
21:24:45
с тобой все нормально
излишнее чувство перфекционизма, разве что
и нетерпимости
хотя, в этом чатике мало кто страдает излишней эмпатией %)

Johnnie
28.12.2016
21:25:15
Кстати

Google

Maksim
28.12.2016
21:25:22
я не могу понять в чём проблема
видимо из за времени суток;(

Johnnie
28.12.2016
21:25:29
А почему нельзя обернуть это все в """текст"""
?

Igor
28.12.2016
21:25:48

Johnnie
28.12.2016
21:26:11
Импорты правильные
?
Остается 7
Фу как некрасиво веду себя, аж стыдно

Igor
28.12.2016
21:27:33
result1 = all_images_src('<html><body><IMG SRC="GO_TO_SLEEP.GIF"></body></html>')
result2 = all_images_src('<html><body><IMG src="test.jpg"><p>Some text<img SRC=\'well.png\'></p></body></html>')
посмотри, чему равен result1 и чему равен result2

Maksim
28.12.2016
21:28:03
SRC

Igor
28.12.2016
21:28:08
??
не делай догадок
просто запусти

Maksim
28.12.2016
21:28:34
сейчас)

Igor
28.12.2016
21:28:38
:3
можно сразу после определения result1 = ... сделать print(result1)
и так же, после определения result2, сделать print(result2)
так должно быть понятнее, чем если ты сделаешь
result1 = all_images_src(...)
result2 = all_images_src(...)
print(result1)
print(result2)
но в любом случае ты должен хотя бы примерно понять, где надо искать проблему
Эта группа больше не существует