· 

Das Produktzeichen (und wie man die Fakultätsfunktion implementieren kann)

Dieser Artikel wird vom Aufbau her bewusst so ähnlich wie der zum Summenzeichen, da du daran siehst, wie ähnlich sich die beiden Zeichen sind und dass du viele Dinge besser verstehen kannst, wenn du nicht einfach nur auswendig lernst, sondern das Konzept dahinter verstanden hast.

1. Einführung

Nicht selten tauchen in der Mathematik Produkte der Form \(1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 \cdot ... \cdot 20\) oder \(1 \cdot 2 \cdot 4 \cdot 8 \cdot 16 \cdot ... \cdot 256\) auf. Insbesondere dann, wenn man mit diesen Produkten lange Beweise führen oder rechnen muss und die einzelnen Produkte visuell erhalten bleiben sollen, bedarf es einer Notation, die kürzer als das Auflisten aller Faktoren ist. Zu diesem Zweck wurde das Produktzeichen entwickelt, das völlig analog zum Summenzeichen funktioniert. Das Symbol dafür haben sich die Mathematiker (wie schon das Summenzeichen) von den Griechen geliehen. Es handelt sich dabei um den Großbuchstaben \(\Pi\) (gesprochen „Pi“). Allerdings reicht auch hier ein einziges Symbol nicht aus, um alle Informationen aus dem Produkt \(1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 \cdot ... \cdot 50\) darzustellen. Man benötigt mindestens noch eine Auskunft über den Startwert („Wo beginnt das Produkt?“), den Endwert („Wo endet das Produkt?“) und die Zusammensetzung des Produkts („Wie werden die einzelnen Faktoren gebildet?“).

2. Woraus setzt sich das Produktzeichen zusammen?

Um den Startwert, den Endwert und die Zusammensetzung der Faktoren angeben zu können, benötigst du eine Laufvariable (z. B. \(i\)). Diese wird unter das Produktzeichen geschrieben. Direkt dahinter folgt der Startwert und über das Produktzeichen wird der dazugehörige Endwert notiert. Start- und Endwert sind stets ganze Zahlen und der Endwert muss größer als oder gleich dem Startwert sein. Andernfalls liegt das sog. „leere Produkt“ vor, das den Wert \(1\) besitzt. Daraus begründet sich übrigens auch, dass \(0!\) als \(1\) definiert ist. Denn letztendlich entspricht das Produkt \(1 \cdot 2 \cdot 3 \cdot 4 \cdot 5 \cdot ... \cdot 20\) nichts anderem als \(20!\) und wenn der Endwert \(0\) wäre, wäre dieser kleiner als der Startwert, was mit dem leeren Produkt Wert \(1\) ergeben würde. Den „Bauplan“ für die einzelnen Faktoren schreibst du direkt hinter das Produktzeichen. Allgemein betrachtet ist das eine Funktion in Abhängigkeit von der Laufvariable \(i\). Der aktuelle Wert der Laufvariable wird jeweils in die Funktion \(f(i)\) eingesetzt und danach um \(1\) erhöht. Das wird solange fortgesetzt, bis die Laufvariable beim Endwert angekommen ist.
Ausgesprochen wird das: „Das Produkt über \(f\) von \(i\) für \(i\) von \(i=i_0\) bis \(i=n\)“. Du kannst jedoch auch verkürzt sagen: „Das Produkt über \(f\) von \(i\) für \(i\) von \(i=i_0\) bis \(n\)“.
Für das Produkt \(1\cdot 2\cdot 3\cdot 4\cdot 5\cdot ...\cdot 20\) kannst du als Laufvariable \(i\) mit dem Startwert \(1\) und dem Endwert \(20\) festlegen. Die Faktoren werden durch die Funktion \(f(i)=i\) gebildet, da sich für den ersten Faktor \(f(1)=1\), für den zweiten \(f(2)=2\), für den dritten \(f(3)=3\) usw. ergibt.

3. Produktzeichen berechnen

Gegeben sei nun das Produkt über \(k^2\) von \(k=0\) bis \(k=3\): $$\prod\limits_{k=1}^{3}{k^2}$$ Wie du siehst, heißt die Laufvariable diesmal \(k\). Der Endwert liegt bei \(3\). Die Funktion zum Bau der einzelnen Faktoren lautet \(f(k)=k^2\). Jetzt werden nacheinander die einzelnen Werte für die Laufvariable in \(k^2\) eingesetzt und die Ergebnisse multipliziert. Mit jedem neu hinzugekommenen Faktor wird der Wert der Laufvariable um \(1\) erhöht.
  • Zuerst wird der Startwert in \(k\)) eingesetzt, d. h. du erhältst als ersten Faktor \(1^2\), also \(1\).
  • Der Wert der Laufvariable wird um \(1\) erhöht. Jetzt wird \(k=2\) in die \(k^2\) eingesetzt und du erhältst als zweiten Faktor \(2^2=4\).
  • Der Wert der Laufvariable wird wieder um \(1\) erhöht. Diesmal setzt du also \(k=3\) in \(k^2\) ein und erhältst als dritten Faktor \(3^2=9\).
  • Den Wert des Produktzeichens berechnest du demnach durch $$\prod\limits_{k=1}^{3}{k^2}=1^2\cdot 2^2\cdot 3^2=1\cdot 4 \cdot 9=36$$

4. Produkte mit dem Produktzeichen verkürzen

Stelle dir vor du hast das Produkt $$2\cdot 4\cdot 6\cdot 8\cdot 10\cdot 12\cdot 14\cdot 16\cdot 18\cdot 20\cdot 22\cdot 24\cdot 26\cdot 28\cdot 30$$ gegeben. Um es überhaupt aufzuschreiben, benötigst du recht viel Zeit. Es bietet sich demnach an, dieses Produkt mit dem Produktzeichen verkürzt zu notieren. Hierzu betrachtest du zuerst, wie sich die einzelnen Faktoren zusammensetzen. Schnell fällt auf, dass es sich hierbei um gerade Zahlen handelt. Die Funktion zur Bildung der Faktoren lautet also \(f(k)=2\cdot k\). Die Laufvariable heißt hier wieder \(k\), doch du kannst auch einen beliebigen anderen Namen dafür verwenden. Der erste Faktor ist \(2\). Diesen Wert erhältst du durch Einsetzen von \(k=1\) in \(f(k)\), d. h. der Startwert der Laufvariable ist \(k=1\). Der letzte Faktor ist die \(30\). Diesen Wert erhältst du durch Einsetzen von \(k=15\) in \(f(k)\), denn \(2\cdot 15=30\). Somit lässt sich dieses lange Produkt durch das Produkt über \(2\cdot k\) von \(k=1\) bis \(k=15\) verkürzt notieren: $$\prod\limits_{k=1}^{15}{2\cdot k}$$

5. Implementierung des Produktzeichens

Das Produktzeichen lässt sich sehr leicht durch eine For-Schleife implementieren. Betrachte hierzu das Produkt über \(2\cdot k\) von \(k=1\) bis \(k=5\): $$\prod\limits_{k=1}^{5}{2\cdot k}$$ Vor der eigentlichen Schleife definierst du eine Variable, die später das Ergebnis enthalten soll, z. B. "produkt". Diese erhält initial den Wert \(1\) (und nicht \(0\) wie beim Summenzeichen), da das neutrale Element bezüglich der Multiplikation die \(1\) ist. Nun folgt das Keyword "for" und die Laufvariable. Da in dem Produkt, das du implementieren möchtest, die Laufvariable \(k\) lautet, wird dieser Name auch in der For-Schleife verwendet. Der Laufvariablen weist du (wie beim Produktzeichen) den Startwert \(1\) zu. Danach folgt die Festlegung des Endwerts. Da das Produkt bis \(5\) läuft, läuft die For-Schleife solange wie \(k\leq 5\) ist. Dahinter signalisierst du durch den Inkrement-Operator \(++\), dass der Wert der Laufvariable in jedem Durchlauf der For-Schleife um \(1\) erhöht wird. Innerhalb der For-Schleife wird der aktuelle Wert der Variable "produkt" mit dem Faktor multipliziert, der sich aus dem Einsetzen von \(k\) in \(f(k)=2\cdot k\) ergibt. Du schreibst also:
int produkt = 1;

for(int k = 1; k <= 5; k++) {
   produkt *=  (2*k);
}
Du kannst mit einer For-Schleife ganz ohne Rekursion die Fakultätsfunktion implementieren. Zur Erinnerung: $$n!:=\prod\limits_{k=1}^{n}{k}$$
Du übergibst deiner Fakultätsfunktion \(n\) als Parameter und berechnest innerhalb der For-Schleife das Produkt aller Werte der Laufvariablen von dem Startwert \(1\) bis zum Endwert \(n\):
public static int fakultaet(int n) {
   int produkt = 1;
   for(int k = 1; k <= n; k++) {
      produkt *= k;
   }
   return produkt;
}

Das Ergebnis gibst du dann mit einem return-Statement zurück.

Kommentar schreiben

Kommentare: 1
  • #1

    Futing Zhang (Freitag, 15 März 2019 09:13)

    Hallo,

    Mir ist klar, dass Sie eine Tonne an Spam-Einsendungen bekommen, weshalb ich gleich auf den Punkt komme – Ich würde gerne einen Gastpost einreichen, oder einen gesponsorten Post, für die Veröffentlichung auf Ihrer Seite.

    Dieser Artikel passt zum Inhalt Ihrer Website, und, ist natürlich informativ sowie auch nützlich. Ich denke, ihre Leser würden ihn lieben �

    Falls Sie gesponserte Posts oder Gastposts auf Ihrer Seite akzeptieren, bitte geben Sie mir den Preis für das Veröffentlichen eines gesponserten Post auf ihrer Website.

    Danke für Ihre Aufmerksamkeit!

    Grüße,
    futing.zhang@hotmail.com