003
14.01.2014, 18:09 Uhr
~surge
Gast
|
Zitat von ao: |
Hi, das sieht mir so aus, als wäre deine Polynom-Berechnung irgendwie Murks, aber vielleicht liegts auch nur daran, dass der Algorithmus ein bisschen hintenrum ist. Ein paar Kommentare, wie das Ding rechnet, wären angebracht.
Allgemein geht die Polynomberechnung so, vielleicht solltest du das einfach umsetzen:
Code: |
y = a[0] * x^0 + a[1] * x^1 + a[2] * x^2 + .... + a[N] * x^N
mit N = Grad des Polynoms. Es sind also N+1 Summanden. Die Formel in Summenschreibweise:
N y = Summe ( a[i] * x^i ) i=0
|
Der Grad des Polynoms kann auch daran erkannt werden, dass es der höchste vorkommende Index ist, für den a[i] != Null ist.
Dass das Ganze als Summenausdruck darstellbar ist, ist ein Hinweis darauf, dass eine Implementierung mit einer for-Schleife naheliegt.
Weiterhin gibt es keinen sinnvollen Grund dafür, * dass die Koeffizienten nur ganzzahlig sein können (float oder double wäre besser), * dass du Speicher für 100 Koeffizienten reservierst, wenn der Polynomgrad maximal 8 sein kann, * dass für x und Wert nur ganze Zahlen zugelassen sind, * dass für x obendrein nur positive Zahlen zugelassen sind.
|
Das ist in der Aufgabenstellung vorgegeben.
Vielen Dank für deine Antwort. Der Algorithmus funktioniert, allerdings sehr umständlich. Deswegen auch mein Posting hier. Werde mich mal daran, deinen Vorschlag zuprogrammieren. |