Aufgaben

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.

Aufgaben
Hallo,

ich wollte fragen, ob man allgemein auch rekursiv programmieren darf und inwiefern man denn die Funktionen von Numpy verwenden darf, wie z.B. diag() oder sowas? Bzw. gibt es irgendwelche Vorschriften?

Vielen Dank im Voraus!


Der Verantwortliche für die Programmierübungen ist diese Woche leider nicht da.

Allerdings sehe ich kein Grund wieso man nicht rekursiv programmieren dürfte.
Ich denke Funktionen in numpy sollten erlaubt sein. Falls nicht weisen wir darauf hin.


Die Tests haben, soweit ich weiß, auch eine Zeitgrenze. Unter Umständen braucht die rekursive Lösung länger oder bricht gar ganz ab für zu große Argumente (maximum stack depth reached).
Ich würde also Rekursion nur da einsetzen, wo da sicher nicht passiert. Zum Beispiel bei der zukünftigen (zumindest im letzten SS) Aufgabe Median-Cut, wo man Zahlen in der Größenordnung 2^i für i < 30 immer halbiert.


So komplette Antwort:

Rekursiv programmieren dürfen sie gerne. NumPy Funktionen dürfen verwendet werde, wenn das die Testsuite zulässt (jeder Test hat eine Liste von Modulen, die verwendet werden dürfen).


Also das wir auf manche Fälle testen müssen ist klar, aber müssen wir auch auf die dummen Fälle überprüfen? Also z.b. dass man bei einer funktion die aussagen über primzahlen trifft 3,57904 eingibt ?(überspitzt formuliert)


Soweit ich es sehen kann, wird auch bei unseren Tests nicht auf “dumme Fälle” getestet.

Das ist auch so eine Python Sache. Da es dynamisch Typisiert ist, müsste man immer bei jeder Funktion ganz viel abfangen.
Da sich die ganze Aufgabe 1 nur mit ganzen Zahlen beschäftigt, kann man davon ausgehen, dass die Funktionen auch nur für ganze Zahlen valide sind.

Am saubersten wäre es natürlich zu Prüfen, ob die Argumente ints sind, und falls nicht, eine Exception schmeißen.