
Viktor
17.09.2016
21:29:45
отлично
а на анаграмичность проверять через Counter норм?
if Counter(a) == Counter(b):
print('a аннаграмма b')

Denis
17.09.2016
21:35:29
if sorted(a) == sorted(b):

Google

Zart
17.09.2016
21:35:34
это подклассы дикта

Viktor
17.09.2016
21:36:05
сравнение строк ведь быстрее сравнения списков?

Denis
17.09.2016
21:41:00
Вроде да

Zart
17.09.2016
21:53:42
это задачка на интервалы имхо

Viktor
17.09.2016
21:54:09
"нет числа": оно не встречается в вводе, но вообще существует в множестве 4-х байтных неотрицательных чисел?

Zart
17.09.2016
21:54:10
надо хранить список диапазонов
если новое число попадает в существующий - пропускаем
если нет - создаем новый диапазон, или обновляем существующие
рекомендую модуль бисект

b0g3r
17.09.2016
21:55:32
А кинь ссылочку

Viktor
17.09.2016
21:55:54

Zart
17.09.2016
21:55:58
четырёхбайтные неотрицательные - это 2гб... хм

Google

Viktor
17.09.2016
21:56:21

Zart
17.09.2016
21:56:27
если юзать битмапы, то можно 2 лярда представить в виде 256мб поля
вы мне помогите задачу понять, а не решать XD
у тебя есть интервал 0 .. 2гб
из него надо выкидывать входящие точки, это будет интервал дробить на новые интервалы
хреналлиард чисел спустя, у тебя останется примерно нихуя, что и требуется вывести 8)
а, ну если считать что речь про unsigned long, то даже 0..4гб

Viktor
17.09.2016
21:59:00

Zart
17.09.2016
21:59:20
если решать битмапами - создаем 512мб поле из битов, да

Viktor
17.09.2016
21:59:21
хм

Zart
17.09.2016
21:59:35
а можно создать интервалы - список пар начала/конца

Viktor
17.09.2016
22:00:03
И дробить до посинения?

Zart
17.09.2016
22:00:09
ага
если случай паталогический - скажем точки будут идти сперва строго четные, потом нечетные, то расходы будут огромными
а потом тебе надо найти инверсию похоже
задачка на sparse bitmap похоже

Viktor
17.09.2016
22:06:45
стоп, я вот чего не пойму
числа от 0 до 4294967295, так?
значит 4294967296 разных чисел.
Если под каждое отводить бит (под информацию о том встречалось ли), то выйдет около 536 мегабайт
Сделать это просто: делаем массив из 536870912 char'ов, и в каждой ячейке храним информацию о числах (степенями двойки)
потом просто ищем в этих 500 мегабайтах ноль

Zart
17.09.2016
22:11:56
4гб
если каждое будет битом, то 8 чисел на байт, делим на 8
4гб/8 = 512мб ровно

Viktor
17.09.2016
22:12:09
Но массив с 536870912 ячейками нереален, а потому делаем его блоками по, скажем, 4096 ячеек

Zart
17.09.2016
22:12:27
"Но массив с 536870912 ячейками нереален"
щито?

Viktor
17.09.2016
22:12:32

Google

Viktor
17.09.2016
22:12:59
точнее он нереален в стеке :)
а вообще я отмажусь что я сонный :)

Denis
17.09.2016
22:15:10
Извращенцы

Viktor
17.09.2016
22:15:52
есть идеи лучше?

Zart
17.09.2016
22:18:57
>>> import array
>>> d = array.array('B', '\0'*(2**29))
>>> len(d)
536870912
сука, сожрал даже
>>> d = array.array('B', '\0'*(2**29))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
на бис уже не может
но тут сперва создается 512мб строка, потом массив из неё инициализируется...
>>> d = bytearray(2**29)
>>>

Viktor
17.09.2016
22:35:53
Я на си писать буду :)
бл
вставил 1021 строку в vim

Viktor
17.09.2016
22:37:58
segfault :)
но у меня 40 секунд всего осталось :(
segfault :)
или коротко о том почему я собственно говоря переходил на питон

Leonid
17.09.2016
23:38:47

Viktor
17.09.2016
23:39:01
Ага

Leonid
17.09.2016
23:39:45
Ага
Если норм, то позовут на собеседование что ли?

John
17.09.2016
23:40:23
А кто-то имеет реальные/завершенные проекты на kivy/python? Я разумеется про android приложения
Или это совсем зашквар?

Google

Viktor
17.09.2016
23:42:47
Это отбор на "открытые курсы"
Но я скорее всего не пойду
Даже если пройду

Leonid
17.09.2016
23:43:24

Viktor
17.09.2016
23:43:30

Admin
ERROR: S client not available

Viktor
17.09.2016
23:44:27
Просто у нашего университета партнёрство с мэйлру

Leonid
17.09.2016
23:45:02
Корпорация зла)
P.S. John Doe из мэилру

John
17.09.2016
23:49:55
Что-то меня на стикеры прорвало
Про киви вообще никто/ничего?(

Leonid
17.09.2016
23:50:17
Там 1200 чел

Максим
18.09.2016
06:50:52
Как перевести число из десятичной системы в двоичную, там есть какой-то метод или надо писать алгоритм?

Даниил
18.09.2016
07:08:02
bin(1337) - переведёт 1337 в двоичную систему счисления
А если нужно без приставки 0b, то:
"{0:b}".format(int) - где int - число
т.е:
>>>> "{0:b}".format(551125)
'10000110100011010101'
В Python очень, очень большая стандартная библиотека, там множество вещей есть полезных

Google

Даниил
18.09.2016
07:11:43
https://docs.python.org/2/library/
тут настолько много библиотек...

Максим
18.09.2016
07:19:45
Спасибо

Даниил
18.09.2016
07:22:30
И вообще, есть гугл :) Ну я просто говорю, понимаю, что тут чат для тех, кто как раз ищет что-то

Denis
18.09.2016
08:05:51
bin(1337)[2:]

Viktor
18.09.2016
08:13:45
Кстати, есть в стдлибе что-нибудь для перевода из/в произвольные системы счисления?
Ну, из вижу: base у int
А в только самому писать, или gmpy...
Хех, сам спросил, сам ответил :)

Даниил
18.09.2016
08:43:43
Denis, я знаю, что это проще, но "{0:b}".format(int) красивее :)

Viktor
18.09.2016
08:46:15

Zart
18.09.2016
08:55:03
перевод в пишется в 4-5 строк кода

Юкер
18.09.2016
08:57:48
По-моему, сюда когда-то вкидывали то ли канал, то ли чат исключительно с книгами по питону. Напомните, пожалуйста, было ли такое, и скиньте ссылку.

Zart
18.09.2016
08:59:10
в инфу канала посмотри

Юкер
18.09.2016
09:01:57

Zart
18.09.2016
09:02:33
а чуть ниже - шаред медиа, вкючая кучу пдфок
Эта группа больше не существует