Seite 2 von 4

Verfasst: 24. Nov 2007 23:22
von taufrisch
s!mon hat geschrieben:http://upload.wikimedia.org/wikipedia/c ... kolaus.gif

Links oben zb

Du fängst rechts unten an das Haus zu zeichnen und kommst am Ende wieder rechts unten an..
IMHO fangen die alle links unten an - aber was verstehe ich schon von links und rechts... :wink:

Verfasst: 25. Nov 2007 02:06
von s!mon
Ja hast recht wenn man am Knoten a anfängt ist man am Ende immer (oder meistens, hab mir jetzt nur ein paar mal selber gezeichnet..) am Knoten b und umgekehrt.. hatte mich verguckt.

Verfasst: 25. Nov 2007 14:03
von Krümelmonster
Kann mir keiner sagen, was die vierte
Hilfsprozedur machen soll?

Verfasst: 25. Nov 2007 14:08
von s!mon
Nein die habe ich selber nicht verstanden. Hab die auch nicht benutzt ;)

Verfasst: 25. Nov 2007 14:11
von Krümelmonster
Aber dein Algorithmus funktioniert
trotzdem richtig?

Verfasst: 25. Nov 2007 16:18
von ChRiZz88
Hmm, steht doch in diesem Thread, was die machen soll...
Sie soll im Prinzip etwas ähnliches machen wie die dritte Prozedur, außer dass die vierte Prodzedur nicht die Kanten ausgibt, sondern die Pfade, d.h. sie dreht bei Gelegenheit...
Also:
(procedure-name E 'e) --> '( (e b) (e c) (e d) )

Die dritte hätte entsprechend '( (b e) (c e) (d e) ) ausgegeben, wenn ich das richtig verstanden habe...

Verfasst: 25. Nov 2007 16:29
von Krümelmonster
Eben dieses
wenn ich das richtig vertanden habe...
hat mich gestört.

Naja, ich werde die Prozedur so implementieren und
dann sehen, wozu ich sie brauche.

Verfasst: 25. Nov 2007 22:35
von Stumpf.Alex
Nochmal meine Meinung (eigenes Zitat aus diesem Thread):
Also ich habe das so verstanden: Du sollst eine Prozedur schreiben die einen Knoten und eine Liste von benachbarten Kanten des Knoten erhälst und dann alle Wege als Liste ausspuckt. Das ergibt auch nur dadurch Sinn, da der Graph ungerichtet ist.

So kannst du zum Beispiel als Liste der banchbarten Kanten des Knotens c die Liste '( (a c) (b c) (c e) (c d) ) erhalten. Nun sollen wir daraus die Pfaden generieren, also folgendes Ergebnis produzieren:

'( (c a) (c b) (c e) (c d) )

Also soll der Inhalt einer Kante so geändert, dass ein Knoten (hier c) von jeder Kante aus ein Startpunkt ist.

Verfasst: 25. Nov 2007 22:38
von Krümelmonster
Danke, aber einmal hätte
völlig ausgereicht. ;)

Verfasst: 27. Nov 2007 17:44
von giftnudel
Hallo,

zuerst möchte ich nochmal wiederholen, dass die Prozedur nur als Hilfestellung gegeben war und ihr die demnach auch nicht benutzen müsst. Also: Wer nicht versteht, was die Prozedur macht, der soll sich einfach selber was überlegen. (Viele Wege führen [s]nach Rom[/s] ums Haus vom Nikolaus)

Die Prozedur könnte ja für alle benachbarten Kanten alle Pfade zurückgeben. Ausserdem ist auch nicht wirklich angegeben, wieviele Parameter die Funktion denn haben soll. Wenn ihr also für alle Pfade einen Akkumulator braucht, oder sonst irgendetwas übergeben müsst, dann steht euch das natürlich frei (Denkt an die Kommentare, sonst verstehen wir nichts mehr).

Wenn ich jetzt noch mehr verrate, habe ich im Prinzip die Aufgabe für euch gemacht (bin ich der Meinung).

Verfasst: 29. Nov 2007 23:57
von Mojito Mix
was passiert denn bei euch, wenn z.B. als Anfangsknoten d ausgewählt wird? Wenn man vom dach ausgeht, dann ist es glaube ich unmöglich das Nikolaushaus zu erstellen...

Verfasst: 29. Nov 2007 23:58
von Stumpf.Alex
Ist es auch! :wink: Dann hast du halt keinen Weg, der das Haus von d aus zeichnen kann.

Verfasst: 30. Nov 2007 21:34
von crazy_wuschie
Ich glaube auch, dass das Haus nur von "a" und "b" als Startpunkt
zeichenbar ist.
Oder sehe ich das falsch? =)

Verfasst: 30. Nov 2007 21:51
von Krümelmonster
Du siehst richtig.
Komplett mit nur einer Linie kann es nur von Punkt 1 und Punkt 2 aus gezeichnet werden und endet dann im jeweils anderen Punkt.
Quelle

Verfasst: 1. Dez 2007 14:03
von niklas
gibt es evtl. noch einen präziseren tipp in hinsicht auf die prozedur generate-paths? sitz da seit tagen dran, komm aber zu nix gescheitem