Wiederholung: Datentypen und Programmstrukturen

Aus ProgrammingWiki

Inhaltsverzeichnis

An einfachen Problemstellungen wollen wir ausgewählte Datentypen und Programmstrukturen in JavaScript wiederholen.

Fakultät einer natürlichen Zahl

Die Fakultät einer natürlichen Zahl berechnet sich aus:

n! = 1 \cdot 2 \cdot 3 \cdot ... \cdot n

Implementiere diese Bildungsvorschrift mit einer Funktion und teste diese mit (kleinen) Argumenten.

Das Heron-Verfahren

Das Heron-Verfahren ist ein Näherungsverfahren zur Bestimmung der Quadratwurzel einer beliebigen positiven reellen Zahl z. Aus einem beliebigen Startwert x ergibt sich aus der nachfolgenden Gleichung mit x_0 ein erster Näherungswert für \sqrt{z}:

x_0 = \frac{x + \frac{z}{x}}{2}

Wird x_0 als neuer Startwert in diese Gleichung eingsetzt, erhält man einen besseren Näherungswert.
Durch mehrfaches Anwenden dieses Verfahrens kann der Wert von \sqrt{z} mit beliebiger Genauigkeit angenähert werden.
Vervollständige dazu die entsprechende Funktion.

Die Fibonaccizahlen

Einer der bedeutendsten Mathematiker des Mittelalters, Leonardo Fibonacci di Pisa (* um 1180; † 1241), beschrieb die Fortpflanzung von Kaninchen mit der Zahlenfolge:

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

Definition:

\mbox{fibo}(n)=\begin{cases}1,\mbox{wenn}\hspace{0.3em}n=1\\1,\mbox{wenn}\hspace{0.3em}n=2\\\mbox{fibo}(n-1)+\mbox{fibo}(n-2),\mbox{sonst}\end{cases}

Beschreibung:

  • Die ersten beiden Glieder der Zahlenfolge sind jeweils 1.
  • Jedes weitere Glied ergibt sich aus der Summe seiner beiden Vorgänger.


Eine allgemeine Formel zur Berechnung der n-ten Fibonaccizahl wurde unabhängig voneinander von den französischen Mathematikern Abraham de Moivre (* 26. Mai 1667; † 27. November 1754) erst im Jahr 1718 und Jacques Philippe Marie Binet (* 2. Februar 1786; † 12. Mai 1856) sogar erst im Jahr 1843 entdeckt.

Fibonacci1.jpg
Berechnung der "Kaninchenaufgabe" mit der Fibonacci-Folge

Ergänze die nachfolgende Funktion und teste sie mit kleinen Argumenten.

Zufallszahlen

Mit den nachfolgenden Funktionen lassen sich beliebige Zufallszahlen ereugen:

Math.random() ... erzeugt eine (rationale) Zufallszahl z im Intervall 0 \le z < 1
Math.floor(z) ... rundet die Zahl z auf die nächstniedrigere ganze Zahl ab

Experimentiere mit diesen Funktionen, so dass große ganze Zufallszahlen generiert werden.

Vervollständige nun die nachfolgende Funktion, mit der das Werfen eines Würfels simuliert werden soll.

Zufallsexperimente

Werfen einer Münze

Simuliere mit der nachfolgenden Prozedur das Werfen einer Münze. Dabei soll ausgegeben werden, wie oft Kopf und Zahl gefallen sind.

Würfeln mit einem Würfel

Wie oft muss im Mittel ein Würfel geworfen werden, bis nacheinander zwei Sechsen gefallen sind?

Würfeln mit zwei Würfeln

Wie oft müssen im Mittel zwei Würfel geworfen werden, bis beide Augenzahlen gleich sind?

Widerstandsnetzwerk

Zunächst besteht eine einfache elektrische Grundschaltung aus 2 gleichgroßen Widerständen. Durch Anhängen weiterer dieser Grundschaltungen entsteht daraus ein komplexes Widerstandsnetzwerk:

Widerstandsnetzwerk1.GIF


Entwickle eine Funktion, die den Gesamtwiderstand zwischen den Anschlussklemmen A und B berechnet, wenn n Grundschaltungen zu diesem Widerstandsnetzwerk zusammengesetzt wurden.