4.1 Horner-Schema

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.

4.1 Horner-Schema
Bei mir kommt entweder der bereits bekannte Fehler:

java.lang.AssertionError: Number of counted calls to Horner.helper is wrong for Horner.evaluate(hh,7,4)
Expected :3
Actual :1

…oder (nach Überarbeitung, sodass er einen rekursiven Aufruf mehr hat):

java.lang.AssertionError: Found illegal recursive calls AFTER add/mul calls for Horner.evaluate(hh,7,4)

Weis jemand was die zweite Fehlermeldung bedeutet / wie man sie löst?


Habe das gleiche Problem
Vielleicht mag sich jemand dazu äußern bzw n kleinen Denkanstoß geben :))


Wie genau hast du dein Polynom aufgebaut? Deinen Java-Code als Mathematische-Formel? Ich habe die Formel auf Seite 23 der 5. AUD-Formel umgesetzt und das hat funktioniert.


Habe persönlich auch diesen Ansatz genommen & erweitert. Jedoch hab ich dort trotzdem nur einen rekursiven Aufruf in der Methode selbst & aus dem anderen Forumsbeitrag geht hervor, dass man
sie mindenstens 2x rekursiv verwenden muss (?)


Entweder ist dein Basisfall nicht „niedrig“ genug oder durch die Variable die beim rekursiven Aufruf verändert wird, wird der Basisfall zu früh erreicht.
Daran lags zumindest bei mir.


Bist du dir sicher, dass es die Formel von Seite 23 und nicht von 24/25 ist? Ich dachte wir sollen die effizienteste Variante implementieren? ^^
und zählst du für i von null bis a.length oder andersherum? Ich bin mir nämlich immer noch nicht sicher welchen Basisfall ich nehmen soll…


Das ist einfach ein bisschen Ausprobiererei. Ich bin darauf gekommen, dass man runterzählen soll, damit man für die Index-Rechnerei nicht die HornerHelper#add-Methode benutzen muss (dann geht auch der zweite Fehler weg), und bei Basisfall i = -1 abbrechen soll (wenn man mit a.length - 1 beginnt und nicht bei a.length, dann bei i = 0).


Wie hast du es denn geschafft die Potenzen darzustellen? Die muss man ja irgendwie implementieren können wenn man die Formel verwendet…


Nein, es ist schon der Algorithmus von Seite 24/25, da braucht man keine Potenzrechnung.