2014-01-07 2 views
0

문제가 있습니다.왜 작동하지 않습니까? 파이썬, 주문, 자전거

algorythm--- solved 

내 파일 'masiny.txt'

m1 dns mail 
m2 none dhcp 
m3 none firewall 
m4 firewall ftp 
m5 mail voice 

첫 번째 열은 'ID가', 두 번째는 '달려'와 세 번째 '제공'내 코드는 다음입니다. 하나의 서비스를 제공하거나 그것에 의존하는 가상 머신에 관한 것입니다.

내 문제는, 음,이 스크립트를 실행하면 컴퓨터 'm7'이 시작되어 멈추었습니다. 왜? 나는 논리가 좋은 생각하지만, meybe 실수는이 코드 두 줄에 있습니다

for j in running: # get running services 
    if j==dep[i] and i in notstarted: # if important service is running and machnie is unopened 

하지만

왜이 루프는 세 번 실행 한 다음 동결? 내가 도와주세요 파이썬 3.3.3 을 사용하고
, 난 하루 종일이와

오류가 enter image description here

+1

[SSCCE] (http://sscce.org) - 실제로 실행되는 코드 (사용자가 의도하고 잘못 추측 할 수있는 위치에서 'IndentationError'를 포함하지 않음)를 제공하고 당신이 묘사하는 것과 같은 문제. 들여 쓰기를했을 때, "Starting m3", "Starting m2", "다음 단계", "Starting m4", "Starting m9"가 인쇄됩니다. 왜 그런 일이 없을 때 "시작 기계 'm7'"에서 얼어 버리는 이유는 무엇입니까? – abarnert

+0

그림 : – Joffo

+1

실제로 편집하려는 것은 ** 간단한 토폴로지 정렬 **입니다. 효율적인 방법, 그리고 당신에게 문제를 보여줄 것입니다 (토폴로지 종류로 루프를 감지하고 그것에 대해 알려주는 것입니다) – lejlot

답변

4

여기서 문제를 따르고

감사합니다 :) 앉아 있는데 당신이 실제로 시작할 수 있다는 것입니다 모든 기계는 규칙에 따라 당신은 더 이상 할 수 없어 그 시점에서

none > dhcp, firewall 
firewall > ftp 
ftp > http 
http > tele 

을하지만, 다음 그래서 코드 루프 무기한 notstarted 여전히 : 처음 몇 시작할 수

m1 (mail, needs dns) 
m5 (voice, needs mail) 
m6 (chat, needs voice) 
m7 (dns, needs chat) 

이 기계는 루프에 dns > chat > voice > mail > dns이므로 절대 시작할 수 없습니다.

+0

많이 고마워 .. 내가 algorithmus에 실수를 찾으려고 노력, 지금은 도움을 주셔서 감사합니다 :) – Joffo

관련 문제