Programmierkurs
für Naturwissenschaftler/innen

Kurzlösungen für die Übungen von Arrays

Mathematische Grundlage

Für $n$ Daten $x_1$, $x_2$, …, $x_n$ schreibt man den Mittelwert als $\bar{x}$, wobei \[ \bar{x} = \frac{1}{n}\sum_{i = 1}^n x_i \; . \]

Die Varianz $\sigma^2$ wird wie folgt berechnet. \[ \begin{align*} \sigma^2 & = \frac{1}{n} \sum_{i=1}^n \left(x_i - \bar{x} \right)^2 \\ & = \frac{1}{n} \sum_{i=1}^n x_i^2 - \left(\frac{1}{n} \sum_{i=1}^n x_i\right)^2 \\ & = \overline{x^2} - \bar{x}^2 \end{align*} \]

Die Funktion zur Ermittlung des Mittelwerts

Dies wird ungefähr folgendermaßen aussehen:

function average(arr) {
  let ave = 0;  // Vergessen Sie nicht die Initialisierung
  for (let i = 0; i < arr.length; i++) {  // Seien Sie vorsichtig mit Schleifenbedingung
    ave += arr[i];
  }

  // Das Folgende kann auch als return ave / arr.length
  // zusammengeschrieben werden
  ave /= arr.length;
  return ave;
}

Anmerkungen

  • Vergessen Sie nicht, die Variablen zu initialisieren.

  • Sie können die Anzahl der Elemente in einem Array mit .length ermitteln.

  • Beachten Sie, dass die Array-Indizes bei 0 beginnen.

  • Achten Sie genau auf die Schleifenbedingung in for-Schleife.

  • Die letzten beiden Zeilen können auch zusammen als return ave / arr.length geschrieben werden. In diesem Fall ist ave jedoch nicht das, was es wirklich bedeutet. (tatsächlich enthält das endgültige ave den Mittelwert multipliziert mit n). Es ist also besser, den Variablennamen von ave in z. B. n_ave zu ändern (was $n$ mal den Mittelwert bedeutet).

Funktion zur Ermittlung der Varianz

Je nachdem, welche Formel Sie verwenden, variiert dies geringfügig, aber im Allgemeinen sieht es etwa so aus.

function variance(arr) {
  let vari = 0;	  // Variablennamen var ist nicht erlaubt
  let ave = average(arr);

  for (let i = 0; i < arr.length; i++) {
    vari += (arr[i] - ave) * (arr[i] - ave);
  }
  vari /= arr.length;
  return vari;
}

Anmerkungen

  • Beachten Sie, dass Sie var nicht als Variablennamen verwenden können (es wird in JavaScript bereits verwendet)

  • Der Quadrat kann geschrieben werden als (arr[i] - ave) ** 2.

Überprüfung der Zahlen

Um den Mittelwert und die Varianz anhand der in der Aufgabe angegebenen Daten darzustellen, kann man zum Beispiel wie folgt schreiben.

data = [ 71, 80, 89 ]
console.log(average(data), variance(data))

In diesem Fall sollten die Werte als

80 54

angezeigt werden.