Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2015 11:09:44

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка 10054

new_optimist
Меня больше интересует не то, кто виноват, а что делать (как добавить питону памяти)
глупости это, нужно избавляться от рекурсии. Я уверен, что вы придумали неэффективный или логически неверный алгоритм. Нужно придумывать эффективный, а не насиловать железо и фантазировать.
Рассказывайте, что за задача такая.



Офлайн

#2 Апрель 12, 2015 11:40:25

new_optimist
Зарегистрирован: 2015-04-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 10054

FishHook
Рассказывайте, что за задача такая.
Уже писал: По сути это та часть поиска компонент сильной связности, где нужно каждой вершине V_i приписать значение f_i при обходе графа. Если слова “компоненты сильной связности” Вам не очень понятны, то суть можно понять просто из кода, благо вся его суть в этих строчках (D_s_ - список дочерних элементов для s):
def DFSR(s):
 global D,t,raw,f
 raw.remove(s)
 for u in D[s]:
	if(u in raw):
	   DFSR(u)
 t=t+1
 f[s]  = t 
def DFSLoop():
 global raw
 while(len(raw)>0): DFSR(raw[0])
DFSLoop()

Офлайн

#3 Апрель 12, 2015 11:57:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка 10054

new_optimist
Вы меня простите, но я в этом разбираться не хочу, мне ваш код каким-то бредом представляется.
Вы уж будьте добры, опишите задачу так, как будто вы заказчик, а я исполнитель, и решать я её буду сам, без ваших “наработок”



Офлайн

#4 Апрель 12, 2015 12:19:17

new_optimist
Зарегистрирован: 2015-04-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 10054

FishHook
опишите задачу так, как будто вы заказчик, а я исполнитель, и решать я её буду сам
Задача звучит так: есть файл 08v2.txt, в который записан список вершин. В файл 08d2.txt записан словарь, где каждой вершине сопоставлен список ее прямых потомков (когда на графе идет стрелочка от вершины к вершине). Набор вершин v1,v2,…,vn образуют класс сильной связности, если из любой вершины этого множества можно по стрелочкам дойти до любой другой вершины этого множества (но если в это множество добавить новую вершину, то свойство связности уже будет утеряно). Задача в том, чтобы разбить исходное множество вершин на классы сильной связности и указать, сколько вершин попало в каждый класс.

Офлайн

#5 Апрель 12, 2015 12:31:27

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка 10054

Отлично, вы забыли файлы приложить.



Офлайн

#6 Апрель 12, 2015 13:13:35

new_optimist
Зарегистрирован: 2015-04-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 10054

FishHook
Отлично, вы забыли файлы приложить
http://double.vv.si/08p2.txt
http://double.vv.si/08d2.txt
http://double.vv.si/08v2.txt

Офлайн

#7 Апрель 12, 2015 13:22:41

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Ошибка 10054

http://double.vv.si/08d2.txt
В этом файле 578 288 открывающих скобки и ни одной закрывающей.



Офлайн

#8 Апрель 12, 2015 13:39:45

new_optimist
Зарегистрирован: 2015-04-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 10054

FishHook
http://double.vv.si/08d2.txtВ этом файле 578 288 открывающих скобки и ни одной закрывающей.
Все правильно, значения записаны командой pickle.dump(P, f).
Считываю, соответственно, тоже как
with open('08p.txt', ‘rb’) as f: P = pickle.load(f)

Офлайн

#9 Апрель 12, 2015 23:22:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Ошибка 10054

new_optimist
Все правильно, значения записаны командой pickle.dump
pickle применяется для передачи внутренних данных программы на питоне внутрь другой программы на питоне через внешний ресурс.
Если же это внешние данные, они должны храниться в формате, доступном для любых программ на любых языках.



Отредактировано py.user.next (Апрель 12, 2015 23:23:29)

Офлайн

#10 Апрель 13, 2015 00:13:12

new_optimist
Зарегистрирован: 2015-04-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка 10054

py.user.next
pickle применяется для передачи внутренних данных программы на питоне внутрь другой программы на питоне через внешний ресурс.
Если же это внешние данные, они должны храниться в формате, доступном для любых программ на любых языках.
Да, все так. Но мы же говорим о питоне. Кстати, исходный файл содержал только ребра графа и там было много вершин, в которые либо нет входящих стрелочек, либо нет исходящих. Такие вершины по определению сами являются классами связности и интереса не представляют.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version