
TpaBaKyP
09.11.2018
21:41:43

Tishka17
09.11.2018
21:43:50

TpaBaKyP
09.11.2018
21:43:54
ну типа там начало каждого следующего от предыидущего начинается и как бы ето правильно сказать циклы меняют свои левые и правые значения
задача вывести все способы представления числа n в виде сумы неспадной последовательности натуральних чисел

Google

Tishka17
09.11.2018
21:46:13
И не парься

TpaBaKyP
09.11.2018
21:46:31
да я сделал
но думал можно как то и без рекурсии ето реализовать

Tishka17
09.11.2018
21:47:05
Ну можешь руками стек делать, что бы рекурсии не было

TpaBaKyP
09.11.2018
21:47:32
я щас код свой с рекурсией скину
я прост еще новичок в пайтоне

Tishka17
09.11.2018
21:47:56
Вообще, возможно задача ещё как-то проще решается. Я без понятия

Danil
09.11.2018
21:49:49
ага

TpaBaKyP
09.11.2018
21:50:27
https://gist.github.com/Valerii15298/e49c77e9d801386ba99c5ff529b045fa
ето вариант с рекурсией но он долго очень работает. У меня задание для n до 1000 сделать а етот код даже для 100 долго работает

Google

Tishka17
09.11.2018
21:53:49
Тогда иди от обратного. Типа динамическое программирование. Считай от 0 до n такую же задачу. Но для каждого прохода используй уже найденные решения

TpaBaKyP
09.11.2018
21:56:59

Tishka17
09.11.2018
21:58:32
Сколько работает для 100?
Вообще небыстро конечно

TpaBaKyP
09.11.2018
22:00:36

Tishka17
09.11.2018
22:05:16
Забыл, да
Так лучше?
Долго короче
Делай лучше как выше сказал
Имхо вывести многовато там

TpaBaKyP
09.11.2018
22:10:25
в том то й проблемка что вывести

Tishka17
09.11.2018
22:10:45
Для 50 уже >200000 штук
cache={}
def c(f):
def inner(n):
if n in cache:
return cache[n]
else:
cache[n]=list(f(n))
return cache[n]
return inner
@c
def do(n):
if n==1:
yield 1,
else:
yield n,
for i in range(n-1, 0, -1):
for x in do(n-i):
if x[-1]<=i:
yield x+(i,)
print(len(list(do(50))))

Sfy
09.11.2018
22:11:31
Какая есть альтернатива Popen.communicate(), если я хочу интерактивно считывать/читать из/в процесс?

Alex
09.11.2018
22:13:33

Google

TpaBaKyP
09.11.2018
22:13:43

Sfy
09.11.2018
22:14:17
Я хочу реализовать интерактивную сессию на сокетах, но ощущаю, что что-то делаю не так.
Как сделать так, чтобы ввод/вывод не задэдлочились?
Про асинхронщину читать?

Alex
09.11.2018
22:15:22
Да

Jentry
09.11.2018
22:29:19
Про асинхронщину читать?
Асинхронщина не поможет, асинхронного дискового io в линупсах и многих ОС попросту нет, поэтому используется тредпул для таких операций

Alex
09.11.2018
22:31:27

Jentry
09.11.2018
22:31:35
Не было

Alex
09.11.2018
22:31:47

Jentry
09.11.2018
22:32:31
ну epoll на ввод-вывод он может и потыкает, но дальше нет, если файловый дескриптор взять в общем
ну и книжный select тоже можно для примера

Kobe
09.11.2018
22:45:37
import asyncio
from typing import Callable
loop = asyncio.get_event_loop()
def aionize(fn: Callable):
def decorator(*args, kwargs):
def wrapped() -> Callable:
return fn(*args, **kwargs)
async def future():
return loop.run_in_executor(None, wrapped)
return future()
return decorator

CthUlhUzzz
09.11.2018
22:45:53
Есть библиотека aiofiles, она через треды работает

Kobe
09.11.2018
22:46:31

Jentry
09.11.2018
22:48:22

CthUlhUzzz
09.11.2018
22:48:42

Kobe
09.11.2018
22:49:00
А тебе даст якобы корутину

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
09.11.2018
22:49:23

CthUlhUzzz
09.11.2018
22:49:35

Google

Jentry
09.11.2018
22:50:18

Kobe
09.11.2018
22:50:20
Короче работает как, над любым def-ом можно дописать @aionize и функция становится асинхронной ?

Alex
09.11.2018
22:50:55
Мальчишки и девчонки
Ту-ту-дуру-ту-ту
А также их родители
Ту-ту-дуру-ту-ту
API асинхронный
Ту-ту-дуру-ту-ту
Вызвать не хотите ли
?

Kobe
09.11.2018
22:51:19

Jentry
09.11.2018
22:51:54

CthUlhUzzz
09.11.2018
22:53:17
Файловый дескриптор, сисколлы теже

Alex
09.11.2018
22:53:40

Admin
ERROR: S client not available

CthUlhUzzz
09.11.2018
22:53:48
Сетевыми

Alex
09.11.2018
22:54:46
На сети поднимаешь сокет для прослушки и для клиента

CthUlhUzzz
09.11.2018
22:55:24
Еполлу пофигу же. Он просто в лупе опрашивает дескриптор на появление новых событий
Что это сетевой сокет что файл, разницы никакой
С файлами не работал, но интересна эта тема

Jentry
09.11.2018
22:57:47
мне кажется, что дело в реализации сетевого стека, он сам по буферам раскладывает, которая очередь send/reqv, а питончику уже готовые куски данных достаются
разницы в интерфейсе никакой, да и то там количество поддерживаемых флагов разное

CthUlhUzzz
09.11.2018
23:01:40
Я где-то встречал код для работы с файлами и epoll'ом на Си
Нужно будет попробовать переписать на питоне
А может и здесь найдутся желающие

Jentry
09.11.2018
23:04:31
мне интересно, кто в случае диска сообщит epoll, что данные приехали и можно читать? ну мне кажется, он сразу и сообщит - читай, подано

Google

Jentry
09.11.2018
23:04:56
нужно, чтобы за тебя в это время кто-то вычитал кусочек и положил в буфер, откуда ты заберешь
если это будут небольшие куски и грамотный шедулинг - задача решена

CthUlhUzzz
09.11.2018
23:05:48

Jentry
09.11.2018
23:05:56
например
но мне кажется, что даже сам Линус не знает, как нужно шэдулить дисковый io, не зря же 12309

Fanatik
09.11.2018
23:08:54
подскажи как остановить выполнение скрипта python на линуксе?))))

CthUlhUzzz
09.11.2018
23:09:59
Ctrl+c

Fanatik
09.11.2018
23:11:11

Jentry
09.11.2018
23:14:03
но есть одно проверенное решение - использовать go вместо питона, тогда можно не париться, синхронно там или асинхронно!

Lev
10.11.2018
00:12:00
Ctrl+c
И не только на линуксе. На винде так же.

Steven
10.11.2018
00:16:31
Почему все путхлоновские GUI такое говно
20 строк чтоб вывести на экран кнопку
Что за
Технологии
Есть какая-нибудь фигня где можно будет как в Borland C++ Builder'e размечать GUI не прописывая его тоннами кода а назначая конкретный функционал

Винни
10.11.2018
00:19:46
Qt Designer

Steven
10.11.2018
00:22:14
Такс вроде это то что нужно
Danke

Ekaterina
10.11.2018
00:59:22
Привет?

Soso
10.11.2018
01:33:36

Винни
10.11.2018
01:43:27
мне на коленки