28.08.2010 Summen und Iteration
Aus CWiki
Inhaltsverzeichnis |
Summen
Ziel ist es die Summe aller natürlichen Zahlen von 0 bis n zu finden. Wie kann man dies am mit Hilfe von Java ausrechnen? Man kann eine Rekursion verwenden,
(Dieser Abschnitt ist schlecht formuliert und zum Teil fachlich falsch. Eine gute Darstellung mit Quelltexten in Java finden Sie im Protokoll des vorigen Kurses.) 1)
Operation Inkarnation Bedeutung addieren_rekursiv(4) 0.Inkarnation aufgerufen Das Addieren wird um 1 erleichtert (n-1) addieren_rekursiv(3) 1.Inkarnation aufgerufen Das Addieren wird um 1 erleichtert (n-1) addieren_rekursiv(2) 2.Inkarnation aufgerufen Das Addieren wird um 1 erleichtert (n-1) addieren_rekursiv(1) 3.Inkarnation aufgerufen n = 1 ist der triviale Fall. 1 3.Inkarnation endet Die 3. inkarnation gibt 1 wird zurück (return) 1+2 2.Inkarnation endet Die 2. Inkarnation addiert 2 zum letzten Resultat und gibt 3 zurück. 3+3 1.Inkarnation endet Die 1. Inkarnation addiert 3 zum letzten Resultat und gibt 6 zurück. 6+4 0.Inkarnation endet Die 0. Inkarnation addiert 4 zum letzten Resultat und gibt 10 zurück.
Nun hat man eine Möglichkeit gefunden diese Summe auszurechen allerdings ist dies immer noch mit sehr viel Aufwand verbunden und benötigt sehr lange, wenn man ees händisch machen möchte.
Gauß
Viele fragen sich bestimmt, was das mit Carl Friedrich Gauß zu tun hat. Es ist überliefert, dass die Klasse des kleinen Gauß in der Grundschule einmal von ihrem Lehrer die Aufgabe bekam, alle Zahlen von 1-100 zu addieren, weil der Lehrer sie für einige Zeit beschäftigen wollte. Nach einigen Augenblicken hatte Gauß allerdings bereits die Lösung gefunden. Als der Lehrer dann überrascht fragte, wie er dies so schnell ausrechnen konnte, erklärte Gauß, dass er immer Zahlenpaare gebildet habe, also 1+100=101, 2+99=101, usw... Da er so auf genau 50 Zahlenpaare á 101 kam, musste er nur 50*101 rechnen und hatte das Ergebnis.
Diese Methode ist natürlich viel geschickter als die rekursive Lösung, die hier nur zum Erlernen des Prinzips dient, und auch geschickter als die folgende iterative Lösung. 2)
Iteration
(Auch hier finden Sie eine gute Darstellung mit Quelltexten im Protokoll des vorigen Kurses.) 3)
Korrekturanmerkungen
1) L--, K--
2) L- (Rechtschreibung, Zeichensetzung)
3) L-, K--
F: 5, L: 0, K: 2, Bonus: 5. - 12 Pkt.

