
TpaBaKyP
11.11.2018
21:52:06
def sr(i):
if i == n - 1:
print(z + [n - sum(z)])
else:
for z[i] in range(z[i - 1], (n - sum(z[:i])) // (n - i) + 1):
sr(i + 1)
n = int(input())
z = [0] * (n - 1)
sr(0)
ето сложный код я знаю(всмысле для понимания) задача состоит в том чтоб вывести все способы представления числа n в виде суммы неспадающей последовательности натуральных чисел) но как мне и что сделать чтоб прога работала для n в диапазоне от 1 до 2**30 ??? сейчас оно едва считает n=50

Nikolay
11.11.2018
21:58:01

TpaBaKyP
11.11.2018
22:00:51
n = int(input())
a = [n]
while n > len(a):
for i in range(len(a)-1, 0, -1):
if (sum(a[i:]) - 1) // (len(a) - i) >= a[i-1] + 1:
a[i-1] += 1
a = a[:i] + [a[i-1]] * (len(a) - i-1)
a = a + [n - sum(a)]
break
else:
a = [1] * len(a) + [n - len(a)]
print(a)

Google

TpaBaKyP
11.11.2018
22:01:45
вот выкинул рекурсию но прога стала работать "как не в 2 то в 10" раз медленней

Nikolay
11.11.2018
22:01:54

Donaudampf
11.11.2018
22:03:48
я в очередной раз посоветую взять нампи

Nikolay
11.11.2018
22:04:49

Donaudampf
11.11.2018
22:05:50
ещё создания новых списков из кусков старых...

Nikolay
11.11.2018
22:07:00
и зачем-то range() вместо enumerate

TpaBaKyP
11.11.2018
22:08:00
пожалуйста у кого есть такая возможность киньте отформатированный код пж

Igor
11.11.2018
22:09:40
Есть скрипт, задача которого на определённом уровне заключается в добавлении большого числа записей (500-1000) в БД (постгре)
Создавать один объект соединения для добавления всех записей? Или для каждой партии (по 10-15 записей) создавать свой объект и курсор? Как лучше сделать? Скорость неважна

TpaBaKyP
11.11.2018
22:09:50
ибо много из того что вы пишете я не понимаю и трачу уйму временеи чтоб понять а вы пишете новую инфу а я ищу что значит предьидущая не успивая понимать все те знания которие вы пишете

Denis
11.11.2018
22:11:09

Igor
11.11.2018
22:16:58
Один для всех
Спасибо.
Тогда возникает ещё вот такая проблема: на некотором этапе запрос фейлится. Если конкретно — при добавлении первой записи кидает psycopg2.ProgrammingError, что неудивительно, так как таблица ещё не создана. Ловлю исключение, пытаюсь создать таблицу тем же курсором, НО получаю ошибку:
psycopg2.InternalError: ОШИБКА: текущая транзакция прервана, команды до конца блока транзакции игнорируются
Гуглил, узнал, что эта ошибка возникает после неудачного запроса. То есть по факту требует переделать объект соединения и курсор. В принципе, я это и делаю, но смотрится как-то жутко костыльно.
Никто с таким не сталкивался?


Denis
11.11.2018
22:17:47
Спасибо.
Тогда возникает ещё вот такая проблема: на некотором этапе запрос фейлится. Если конкретно — при добавлении первой записи кидает psycopg2.ProgrammingError, что неудивительно, так как таблица ещё не создана. Ловлю исключение, пытаюсь создать таблицу тем же курсором, НО получаю ошибку:
psycopg2.InternalError: ОШИБКА: текущая транзакция прервана, команды до конца блока транзакции игнорируются
Гуглил, узнал, что эта ошибка возникает после неудачного запроса. То есть по факту требует переделать объект соединения и курсор. В принципе, я это и делаю, но смотрится как-то жутко костыльно.
Никто с таким не сталкивался?
Нужно поабортить транзакцию, создать таблицу и добавить заново

Google

Igor
11.11.2018
22:23:45
а про саму отмену транзакции — ни слова

Никита
11.11.2018
22:24:52
Так написано же, что отменит

Denis
11.11.2018
22:24:55

Igor
11.11.2018
22:25:03
ааа бля
точно
спс

Никита
11.11.2018
23:31:19
su_id - System User ID - ID пользователя внутри БД.
tu_id - Telegram User ID - из телеги.
Как нам можно сделать, чтобы первое само increment и при этом могло соответствовать нескольким tu_id(на случай, если чел решит юзать с другого акка)?
Есть тут знатоки баз данных?)

Denis
11.11.2018
23:33:05
Сделать первому автоинкремент

Никита
11.11.2018
23:34:39
su_id tu_id
1 377373
2 48848
3 84848
2 48835
А фичу с повторением su_id как добавить?

Denis
11.11.2018
23:36:04
Зачем с повторением? Сделай соответствие в другой таблице
pk не может повторяться

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

Никита
11.11.2018
23:38:17

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

Никита
11.11.2018
23:39:30
Он типа захочет восстановить аккаунт

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
11.11.2018
23:39:46
Ну тогда удали старый и перенеси все данные на новый

Google

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
11.11.2018
23:39:48
Апдейтом
Зачем тебе лишние старые данные?
Или выдавай юзеру жсон
При удалении
С уникальным кодом
Который подтвердит реальность данных
И тому кто его заюзал - проставит все что ты записал в жсоне

Admin
ERROR: S client not available

Никита
11.11.2018
23:41:15
Норм

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
11.11.2018
23:41:33
А аккаунты хранить - глупая идея, так тебе скажу

Никита
11.11.2018
23:44:28
Всм?
А как?

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

Никита
11.11.2018
23:45:40
Ну а если будет желание использовать один личный кабинет с нескольких аккаунтов

Denis
11.11.2018
23:46:05
Зачем?

Никита
11.11.2018
23:47:06
Захотелось

F̦̮̦͍́ o̹̟̩r̨̮͈ ̘͕̥͓d̙͓̀ ̖̱̟en͖͍̼̘̺̣̘
12.11.2018
00:01:10
Причем для оригинала она будет как бы
real_id - tg_id
И потом для каждого человека тебе нужно тг айди преобразовать во внутренниц

Alek
12.11.2018
02:20:42
Ребята, не подскажите, какую СУБД можно использовать с учетом условий:
1) Заранее неизвестна модель данных и таблицы, поля и таблицы добавляются динамически
2) Хорошая скорость работы, отчеты с миллионами строк

Dim
12.11.2018
02:21:33

Google

Slam! 538
12.11.2018
02:21:55

Alek
12.11.2018
02:22:23
А уже писали в этом направлении что-то подобное? Как опыт работы с mongo?

Slam! 538
12.11.2018
02:23:04
Я работал в studio 3T а также на питоне писал бота
Проблем не возникло, скульный JOIN отдыхает
Пихаешь в ячейку то, что тебе нужно, даже еще один объект JSON

Dim
12.11.2018
02:24:34

Slam! 538
12.11.2018
02:26:16
Там синтаксис неочевидный и не очень симпатичный