home

Summen von natürlichen Zahlen

1. Die ersten hundert natürlichen Zahlen

2. Summen von Quadrat- und Kubikzahlen

3. Summen höherer Potenzen

Gauß
Der große Mathematiker Gauß auf dem letzten 10-DM-Schein (bis 2001)

Dieser Streifzug führt Sie – ausgehend von einer berühmten Anekdote – in die Verwendung des Summenzeichens ein und zeigt exemplarisch, wie die spielerische Beschäftigung mit Spezialfällen zu allgemeinen Erkenntnissen führen kann.

1. Die ersten hundert natürlichen Zahlen

Eine berühmte Anekdote über Carl Friedrich Gauß, einen der größten Mathematiker aller Zeiten, beginnt in der Version aus Daniel Kehlmanns Roman „Die Vermessung der Welt“ so:

Der Lehrer in der Schule hieß Büttner und prügelte gern. [...]

Büttner hatte ihnen aufgetragen, alle Zahlen von eins bis hundert zusammenzuzählen. Das würde Stunden dauern, und es war beim besten Willen nicht zu schaffen, ohne irgendwann einen Additionsfehler zu machen, für den man bestraft werden konnte. Na los, hatte Büttner gerufen, keine Maulaffen feilhalten, anfangen, los! Später hätte Gauß nicht mehr sagen können, ob er an diesem Tag müder gewesen war als sonst oder einfach nur gedankenlos. Jedenfalls hatte er sich nicht unter Kontrolle gehabt und heimlich den Pocket PC aus seinem Ranzen gezogen. Darauf hatte er die unten stehenden BASIC-Zeilen eingetippt und stand nach drei Minuten mit seiner Schiefertafel, auf die nur eine einzige Zeile geschrieben war, vor dem Lehrerpult.

So hätte es sein können, wenn Gauß 1977 geboren worden wäre. Noch ein paar Jahrzehnte später hätte er vielleicht, um den Banknachbarn zu verwirren, auf seinem Handy diese JavaScript-Zeile getippt:

Tatsächlich ist Gauß aber 200 Jahre früher geboren, und ich habe den kursiven Text hineingemogelt ins Kehlmann-Zitat (das man auch schon mit der Satire-Brille lesen muss). Wahr ist jedoch, dass die gedankenlose Benutzung des Computers von der Entwicklung einer effizienten Lösung abhalten kann. Wenn nicht die Summe von 1 bis 100 sondern z.B. bis 10100 benötigt wird, scheitert nämlich auch der schnellste Computer beim sturen Aufaddieren. Nachdenken lohnt sich auch heute noch!

Das Summenzeichen

Die gesuchte Summe ist
1+2+3+\ldots+100

Ist das nicht eine etwas schwammige Schreibweise?

Tatsächlich bleibt es hier der Leserin (oder dem Leser) überlassen, die Bedeutung der drei Punkte zu erfassen. Ihnen ist wahrscheinlich sofort klar, was z.B. mit

1+2+4+8+16+\ldots+1024

gemeint ist. Trotzdem verwendet man die Pünktchen-Schreibweise in der Praxis nur mit gleichbleibenden Abständen.

Klarer und kürzer kann man Summen mit dem Summensymbol (großes Sigma) schreiben:

\sum_{i=1}^{100}i

Damit werden für i der Reihe nach alle Werte vom Anfangswert 1 bis zum Endwert 100 eingesetzt und aufsummiert.

Anstelle der Laufvariablen i kann rechts auch ein beliebiger Term stehen, der jeweils in Abhängigkeit von i berechnet wird:

\sum_{i=n_0}^{n_1}f(i)

Die Bedeutung einer solchen Summe könnte man in mathGUIde allgemein so definieren:

Wieso kommt in der Parameterliste der Funktion sigma die Variable i nicht vor? Das hat einen guten Grund: i dient ja nur als Hilfsvariable für das Durchzählen der in die Summe einzusetzenden Werte. Namen sind Schall und Rauch: Man könnte dafür auch eine beliebige andere Variable nehmen, ohne den Wert der Summe zu verändern. In der Implementierung haben wir – ebenso willkürlich wie unterm Sigma – die lokale Variable i verwendet.

Dass die Laufvariable nicht prinzipiell zur Summe gehört, sondern nur ein Hilfsmittel in der Implementierung ist, zeigt die folgende rekursive Implementierung, die ganz ohne lokale Variablen auskommt:

Mit dieser Variante gibt es leider ein technisches Problem: Wegen der begrenzten Rekursionstiefe (Stacküberlauf) funktioniert sie nur bei nicht allzu großer Laufweite. Versuchen Sie es mal mit großen Zahlen!

Manche Programmiersprachen (JavaScript bisher leider noch nicht) optimieren den rekursiven Funktionsaufruf weg, wenn er der Rückgabewert der Funktion ist („Endrekursion“). In sigmaRec ist aber die Rekursion nur Teil des zurückgegebenen Terms. Mit einem zusätzlichen Parameter lässt sich das Problem hier lösen.

Bei der Gelegenheit ersparen wir es uns, für den einmaligen Gebrauch die Funktion id zu definieren. Stattdessen übergeben wir sie anonym mit Hilfe des Pfeil-Operators (=>):

Noch eine Abkürzung: Der Doppelpunkt in der letzten Zeile ist eine Abkürzung für einen (einzeiligen!) Aufruf der mathGUIde-Funktion print.

Mit der mathGUIde-Funktion sum können wir direkt schreiben:

Kleine Übungen zum Summenzeichen

Bitte prüfen Sie Ihr Verständnis des Summenzeichens an den folgenden Beispielen:

\sum_{i=2}^4 {i^2} \quad \quad \sum_{k=-1}^1 {k^4} \quad \quad \sum_{i=1}^{10} 3 \quad \quad \sum_{i=1}^{0} (i+5) \quad \quad

Bevor Sie mathGUIde die Lösungen anzeigen lassen (ganz unten auf dieser Seite), versuchen Sie es bitte erst selbst!

Die dritte Summe ist zwar etwas ungewöhnlich, aber durchaus korrekt: Im Term hinter dem Summenzeichen kommt die Laufvariable gar nicht vor. Hier wird also zehnmal der konstante Wert 3 aufsummiert.
Auch die vierte Summe ist ungewöhnlich: Der Endwert der Laufvariable ist kleiner als der Anfangswert. Was passiert hier mit der while-Schleife in der Definition von sigma?

Die Gauß’sche Lösung des Problems

Hat Gauß denn wirklich alle 100 Zahlen einzeln addiert?

Bei Kehlmann geht die Anekdote so weiter:

So, sagte Büttner und griff nach dem Stock. Sein Blick fiel auf das Ergebnis, und seine Hand erstarrte. Er fragte, was das solle.

Fünftausendfünfzig.

Was?

Gauß versagte die Stimme, er räusperte sich, er schwitzte. Er wünschte nur, er wäre noch auf seinem Platz und rechnete wie die anderen, die mit gesenktem Kopf dasaßen und taten, als hörten sie nicht zu. Darum sei es doch gegangen, eine Addition aller Zahlen von eins bis hundert. Hundert und eins ergebe hunderteins. Neunundneunzig und zwei ergebe hunderteins. Achtundneunzig und drei ergebe hunderteins. Immer hunderteins. Das könne man fünfzigmal machen. Also fünfzig mal hunderteins. Büttner schwieg. Fünftausendfünfzig, wiederholte Gauß, in der Hoffnung, daß Büttner es ausnahmsweise verstehen würde.

Diese Paarbildung geht auf, weil Hundert eine gerade Zahl ist. Damit es auch für ungerade Zahlen funktioniert, schreiben wir die Summe zweimal auf, einmal vorwärts und einmal rückwärts:

\begin{aligned} & 1 & + & 2 & + & 3 & + & \ldots & + &98 & + & 99 & + & 100 \\ = & 100 & + & 99 & + & 98 & + & \ldots & + & 3 & + & 2 & + & 1 \end{aligned}

Die Summe von 1 bis 5 lässt sich zweimal in einem 5·6-Rechteck unterbringen.
Summe 1 bis 5

So ergeben die übereinanderstehenden Zahlen jeweils 101.
Die doppelte Summe ist also 100·101 = 10100 und damit die einfache Summe 5050.

Für allgemeinere Summen von 1 bis n ergibt sich auf diese Weise:

2 \sum_{i=1}^n i = n(n+1)

und damit:

\sum_{i=1}^n i = \frac{n(n+1)}2

Zur Belohnung für unser Nachdenken sollte mathGUIde uns jetzt mal eben die Summe der natürlichen Zahlen bis 10^{100} ausrechnen:

Ups, hier stoßen wir auf ein Problem des Standard-Zahlentyps Number von JavaScript: Er verwendet (nach der Norm IEEE 754) 64 bit, davon 52 bit für die Mantisse und 11 bit für den Exponenten. Das gesuchte Ergebnis kann daher nicht exakt gespeichert werden:

Abhilfe schafft hier die ECMAScript® 2021 Language Specification. Sie führt den Datentyp BigInt ein, der in aktuellen Standard-Browsern (ausgenommen Internet Explorer und Safari) schon implementiert ist. Diese Lösung hat allerdings (z. B. im Vergleich zu Python) den Nachteil, dass man zwischen zwei nicht kompatiblen Zahltypen wählen muss:

Jetzt können wir die gesuchte Summe \sum_{i=1}^{10^{100}} i berechnen:

Die 200-stellige Zahl hat zwei von Null abweichenden Ziffern! (ggf. scrollen!).


Lösung der Übungen

Fortsetzung: Summen von Quadrat- und Kubikzahlen

home