@python_beginnersЭта группа больше не существует

Страница 1015 из 1885
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

Google
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
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
(если ты про код Максима)

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
я не могу понять в чём проблема
проблема в первых 8 строчках твоего кода

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) но в любом случае ты должен хотя бы примерно понять, где надо искать проблему

Страница 1015 из 1885

Эта группа больше не существует Эта группа больше не существует