@ru_python

Страница 7003 из 9768
TpaBaKyP
09.11.2018
21:41:43
Tishka17
09.11.2018
21:43:50
покажеш?
А в чем задача?

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

задача вывести все способы представления числа n в виде сумы неспадной последовательности натуральних чисел

Google
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 такую же задачу. Но для каждого прохода используй уже найденные решения

Tishka17
09.11.2018
21:58:32
https://gist.github.com/Valerii15298/e49c77e9d801386ba99c5ff529b045fa
А если так: def do(n): if n==1: yield 1, else: for i in range(n-1, 0, -1): for x in do(n-i): if x[-1]<=i: yield x+(i,) for x in do(4): print(x)

Сколько работает для 100?

Вообще небыстро конечно

TpaBaKyP
09.11.2018
22:00:36
А если так: def do(n): if n==1: yield 1, else: for i in range(n-1, 0, -1): for x in do(n-i): if x[-1]<=i: yield x+(i,) for x in do(4): print(x)
здесь не все варианты, для 10 должно быть 42 способа а у тебя лишь 30 ?

Tishka17
09.11.2018
22:05:16
здесь не все варианты, для 10 должно быть 42 способа а у тебя лишь 30 ?
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,)

Забыл, да

Так лучше?

Долго короче

Делай лучше как выше сказал

Имхо вывести многовато там

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(), если я хочу интерактивно считывать/читать из/в процесс?

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

Про асинхронщину читать?

Alex
09.11.2018
22:15:22
Да

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

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
Есть библиотека aiofiles, она через треды работает
epoll, по идее должен и с файлами работать, только флаги выставить, чтобы не блокировались io операции

Kobe
09.11.2018
22:49:00
Так поди что не любую, а не блокирущую надолго исполнение?
Ну asyncio же запустит её в отдельном потоке

А тебе даст якобы корутину

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
09.11.2018
22:49:23
CthUlhUzzz
09.11.2018
22:49:35
epoll, по идее должен и с файлами работать, только флаги выставить, чтобы не блокировались io операции
Виндовый API тоже читал, что умеет, но его поддержки не завезли в стандартный питоний модуль select

Google
Jentry
09.11.2018
22:50:18
Ну asyncio же запустит её в отдельном потоке
а, я не дочитал дальше, оставившись на return fn(), ну.. ты молодец конечно, но зачем? если это тот же тредпул, но хуже (не переиспользует потоки)?

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

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

Jentry
09.11.2018
22:51:54
epoll, по идее должен и с файлами работать, только флаги выставить, чтобы не блокировались io операции
теоричетически да, но практически нет, питон блокируется при доступе к pyobject, когда ты будешь данные с буфера в объект складывать - он будет именно блокироваться

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
нужно, чтобы за тебя в это время кто-то вычитал кусочек и положил в буфер, откуда ты заберешь

если это будут небольшие куски и грамотный шедулинг - задача решена

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
Ctrl+c
спасибо)

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
мне на коленки

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