2017-12-06 4 views

답변

0

처음에는 위에서 아래로 살펴 봅니다.

주기가 없다는 것은 무엇을 의미합니까?

~ 모든주기가 틀립니다.

어떤주기가 있습니까?

~ 다른 노드를 통해 한 노드에서 같은 노드로 이동할 수 있습니다.

다른 노드를 통해 동일한 노드로 이동할 수 있는지 어떻게 확인할 수 있습니까?

는 ~ 내가 시작 하나에서 이동 한 것보다 나는이 노드 (에서 보관할 수 있으며, 이미 목록에있는 노드를 추가하지 않는 다른 노드를 추가 할 수 있습니다, 빈리스트 노드에 추가 !!!! !!!!!)

node(X) :- 
     gen(X,_) ; gen(_,X). 

canGoTo(X,N, Nodes) :- 
     member(X2, [X|Nodes]), gen(X2, X1), 
     \+ member(X1, Nodes), 
     canGoTo(X, N, [X1|Nodes]). 

canGoTo(_,N,N). 

canGoTo(X,Nodes) :- canGoTo(X,Nodes,[]). 

canGoToSelf(X) :- canGoTo(X,Nodes), member(X,Nodes),!. 

isCycle() :- node(X) , canGoToSelf(X),!. 

noCycles() :- \+ isCycle(). 
관련 문제