Schülerlösungen 2023 Jahrgangsstufe 11

Aus ProgrammingWiki

Wechseln zu: Navigation, Suche

Voraussetzungen

Für das Projekt sind bereits die bekannten Stream-Sprachelemente definiert:

 SyntaxSemantik
Selektoren stream-cargibt das Kopfglied zurück
stream-cdrgibt den Reststream zurück
Konstruktor stream-conserzeugt aus Kopfglied und Reststream einen Stream
Prädikat stream?gibt #t zurück, wenn das Argument ein Stream ist, anderenfalls #f
Operatoren stream-map wendet eine Prozedur auf die Glieder eines Streams an und gibt das Resultat als Stream zurück
stream-filter filtert mit einem Prädikat Glieder eines Streams heraus und gibt diese in einem Stream zurück
Ausgabe show-streamgibt die Elemente eines Streams in einer beliebigen Anzahl auf dem Bildschirm aus

Weiterhin steht bereit:

Syntax-Erweiterungen

Es ist sinnvoll, die Glieder einer Zahlenfolge sinnvoll zu runden. Deshalb soll die Stream-Ausgabe um die schon bekannte Prozedur runden erweitert werden:

Um mehrere Balkendiagramme grafisch darstellen zu können, ist weiterhin die nachfolgende geringfügige Syntax-Erweiterung der Prozedur balkendiagramm notwendig:

(balkendiagramm <stm> <anz> <nr>) ; <stm> ... Stream mit Zahlenwerten
                                  ; <anz> ... Anzahl der darzustellenden Elemente
                                  ; <nr>  ... fortlaufende Nummerierung des Balkendiagramms

Beispiel:

Gegeben ist die Zahlenfolge $(e_n)$ mit der nachfolgenden expliziten Bildungsvorschrift:

$e_n=(1+\frac{1}{n})^n\hspace{0.3em},\hspace{0.3em}\mbox{für}\hspace{0.3em}n=1, 2, 3, ...$

Explizite Bildungsvorschrift:

Die Collatz-Folge

Autor: Mathias Heyder Avalos (2023)

Lothar Collatz,
Foto aus der Sammlung des Mathematischen Forschungsinstituts Oberwolfach

Lothar Collatz (* 6. Juli 1910; † 26. September 1990) veröffentlichte die Zahlenfolge im Jahr 1937.

Definition:

$a_1 \longrightarrow a_{n+1}=\begin{cases}\dfrac{a_n}{2},\mbox{wenn}\hspace{0.3em}a_n\hspace{0.3em}\mbox{gerade}\\\\3 \cdot a_n + 1,\mbox{sonst}\end{cases}$

Implementation:

Collatz-Problem:

Die Folge tritt somit in einen Zyklus ein, in dem die Glieder $4$, $2$, $1$ ab einem bestimmten Folgenglied ständig wiederholt werden.
Mit den folgenden Prozeduren wird geprüft, ob diese Periode eintritt und ggf. gezählt, ab welchem Folgenglied das erfolgt.

Bis heute ist nicht geklärt, ob diese Periode bei jedem beliebigen Startglied $a_1$ eintritt.

Persönliche Werkzeuge