Übungsblatt 3 - Aufgabe 4

Korrekturrichtlinien

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.

Übungsblatt 3 - Aufgabe 4
Bei der Aufgabe 3.4 (Newton-Iteration) gibt es diverse Methoden mit einer Zeile “return Double.NaN;” am Ende. Wenn ich diese Zeile durch eine sinnvolle Rückgabe ersetze, dann funktioniert das Programm nach dem main- und nach dem EST-Testfall.

Schreibe ich allerdings Sperrklauseln rein (z. B. “wenn n größer 0” an den Beginn der power-Methode) und lasse ich die Zeile “return Double.NaN;”, so funktioniert das Programm nach dem main-Testfall einwandfrei, nach dem EST-Testfall aber nicht.

Gibt es Punktabzüge für das Ersetzen der Zeile “return Double.NaN;” und was zählt allgemein (korrekturrichtlinientechnisch) als Methodenrumpf?


Der Methodenrumpf ist alles, was nicht zwischen den { } steht, das return …; gehört also nicht dazu. Das steht da nur (mit einem offensichtlich ungültigem Rückgabewert), damit der Code als ganzes kompiliert, auch wenn du noch nicht alle Teilaufgaben gemacht hast.


Ja, das ist ein Fehler in der Aufgabenstellung.

Es sollte heissen “n >= 0” statt “n > 0” - natürlich soll eure Methode x^0 auch berechnen können.

Edit: ist korrigiert (sowohl die Aufgabenstellung als auch das EST); falls du deine ursprüngliche Abgabe nochmal hochladen könntest (mit der richtigen Abfrage :wink: )


Jetzt funktionieren beide Versionen zumindest im EST. Danke schön.

Soll man außerdem 0^0 als 1 implementieren? Das wäre richtig wegen x^0=1 und es läuft so im EST, aber es gilt auch 0^n=0.


Ich habe zu danken :slight_smile:

Ist nicht nötig.


Wenn ich nicht irre ist 0^0 nicht definiert.


Das ist richtig, die Definition ist nicht eindeutig. Da allerdings x^x für x=>0 gegen 1 konvergiert, wird oft die Konvention 0^0=1 verwendet.


Und 0^x konvergiert für x→0 nach 0 … Also 0^0=0, oder wie?


Auch wenn graphische Lösungen nicht unbedingt aussagekräftig sind, vielleicht hilfts in dem Fall ja was:
http://www.wolframalpha.com/input/?i=x^x+from+-1e-10+to+1e-10
Ich denke daher auch, dass die Konvention 0^0 = 1 durchaus OK ist.

Ansonsten für die weitere Diskussion: https://en.wikipedia.org/wiki/Exponentiation#Zero_to_the_power_of_zero


Und auch wenn mein Argument auch nicht aussagekräftig ist, spuckt auch Java bei Math.pow(0, 0) 1.0 aus (siehe auch den Artikel von decyfeR an der Stelle mit pow, pown und powr). Gibt es eigentlich Analogien zu pown und powr in Java?