今週、私はこの宿題をしなければなりませんでした: 無向グラフのノードの等級を数え、その中にオイラーパスがあるかどうかをテストします。関数は次のように機能する必要があります。
gradliste([[a,b],[b,c],[b,g],[c,d],[d,e],[e,f],[f,g],[g,h],[c,f]],X).
X = [[a, 1], [b, 3], [c, 3], [g, 3], [d, 2], [e, 2], [f, 3], [h, 1]]
testEulerweg([[a,b],[b,c],[c,d],[d,e],[a,e],[b,d],[b,e],[a,d]]).
true.
関数の最初のアイデアはgradliste
、グラフを「マージ」して、次のようなリストを生成することです。
[a,b,b,c,b,g,c,d,d,e,e,f,f,g,g,h,c,f]
次に、すべてのノードの数を数えます。残念ながら、私はで立ち往生しましたmerge
。
2番目の関数については、testEulerweg
まず次のように機能する関数を作成する必要があると思いallconnected
ます:
allconnected([[a,b],[b,c],[c,d]]).
true.
allconnected([[a,b],[b,c],[e,f]]).
False.
次に、関数を使用して、グレード番号が奇数のノードがないか、2 つあるかどうかを確認できgradliste
ます。
誰かが私の考えを手伝ってくれますか? また、新しいアイデアにもオープンです:)
前もって感謝します
ベアツク