Einzelaufgabe 4.3

zu 4.3 d)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Einzelaufgabe 4.3
Meine istErreichbar methode funktioniert soweit aber der PublicTest timed out.

Woran könnte das denn liegen?


Ob sie dann wirklich funktioniert? :wink:

Endlosrekursionen oder ähnliches würd ich tippen.
Ansonsten mal timelimit hoch setzen :stuck_out_tongue:


Also mit funktioniert mein ich das der grüne hacken bei pubTest_istErreichbar ist. Aber halt nicht bei pubTest_RECURSION_CHECK_THIS_TEST_…


Meine Vermutung:
Deine Methode braucht zu viel Zeit zum durchlaufen. Zwar steht in der Aufgabenstellung, du sollst eine “Rekursion ohne Optimierung” vewenden, allerdings macht die triviale Optimierung, dass man von einer Person nicht zu sich selbst springen kann, den Methodendurchlauf kürzer und kurz genug für den Testfall.


Ich habe jetzt ebenfalls ein Problem mit besagtem Test.
Und zwar läuft er problemlos in der gegebenen Zeit durch (keine Endlosschleife) und liefert augenscheinlich auch das richtige Ergebnis (istErreichbar Test bestanden), allerdings bricht der pubTest_RECURSION_CHECK_THIS_TEST… dennoch mit der einem AssertionError bei einer bestimmten Eingabe ab, aber ohne einen Expected / Actual Wert zu liefern.
"2) checking value returned by istErreichbar( 560, 48, d = 7 ): "
Hab mir auch die früheren Aufrufe ausgeben lassen, die im selben freundschafts Array stattfinden und diese bestehen den Test.


Ich hatte ein ähnliches Problem und diese Überprüfung hat das Problem gelöst. Er test sonst in der Schleife auch, die Person mit sich selbst. Dadurch hatte das nie ein Ende.

Versuch erstmal das von hicro umzusetzen. Ich sehe gerade, dass viele andere genau deinen Fehlercode hatten und es ging nachdem sie das gefixt hatten.


Das ist bereits drin und zu lange braucht die Methode deshalb ja eigentlich auch nicht, deshalb bin ich etwas verwirrt.


Wenn der recursions-Test fehlschlägt heißt das meistens, dass ihr zu viele oder zu wenige Basisfälle habt oder euer Basisfall nicht für alle Eingaben funktioniert(i.e. Basisfall bei 1, aber nicht bei 0 oder soetwas)


Der Basisfall deckt eigentlich alles ab und wie gesagt der Test beschwert sich ja anscheinend über einen plötzlich falschen Wert, aber liefert keinen expected und actual

1 „Gefällt mir“

@RainerWein Hast du es mittlerweile gelöst? Ich habe nämlich den selben Fehler.


Jap, war wie mittlerweile in nem andere Thread beschrieben, dass man nicht das Ergebnis der Rekursion direkt zurück gibt, sondern nur, wenn das Ergebnis true ist, da sonst nur der erste Freund im Array überprüft wird