MINT lernen

Abituraufgaben: Lauflängencodierung

Zwei Abituraufgaben zur Lauflängencodierung — Pixel, Messwerte und eine Python-Funktion.

Dein Fortschritt:
0 / 0 Aufgaben
1

Ein Symbol in Läufen

AFB I–II

Die Abbildung zeigt ein Schwarz-Weiß-Symbol aus 6 Zeilen zu je 8 Pixeln (S = schwarz, W = weiß). Es wird zeilenweise mit Anzahl-Wert-Paaren codiert. Für die Anzahl werden 3 Bit, für den Wert 1 Bit gespeichert.

Symbol aus 6 × 8 Pixeln
12345612345678
  1. Stellen Sie die Lauflängencodierung aller sechs Zeilen dar.
  2. Berechnen Sie die Länge der Codierung in Bit und vergleichen Sie sie mit dem Original.
  3. Geben Sie die Pixelzeile an, die zum Code 1S 6W 1S gehört.

Hinweise

Hinweis zu Aufgabe a)
Jede Zeile beginnt mit einem neuen Lauf; Kontrolle über die Summe 8.
Hinweis zu Aufgabe b)
Läufe zählen; ein Paar kostet 3 + 1 Bit. Achtung bei Zeile 3.
Hinweis zu Aufgabe c)
Paar für Paar ausschreiben.Angeben: Elemente, Sachverhalte, Begriffe oder Daten ohne Erläuterungen aufzählen bzw. wiedergeben.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Zeile 1 und 6: 2W 4S 2W · Zeile 2 und 5: 1W 2S 2W 2S 1W · Zeile 3 und 4: 8S.

Erwartungshorizont zu Aufgabe b)

Mit 3 Bit ist die Anzahl höchstens 7 — der 8er-Lauf in Zeile 3 und 4 muss geteilt werden (7S 1S). Läufe: 3 + 5 + 2 + 2 + 5 + 3 = 20 Paare → \(20\cdot4=80\) Bit. Original: \(6\cdot8=48\) Bit. Der Code ist länger (167 %).

Erwartungshorizont zu Aufgabe c)

SWWWWWWS

2

Messwerte eines Temperatursensors

AFB II–III

Ein Sensor liefert jede Minute eine Temperatur als ganze Zahl von 0 bis 255 (8 Bit). Eine Stunde ergibt eine Liste mit 60 Werten, die sich oft lange nicht ändern. Die Werte werden als Paare (Anzahl, Wert) gespeichert: Anzahl mit 4 Bit, Wert mit 8 Bit.

Die ersten 20 Werte: 21 21 21 21 21 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22

  1. Wenden Sie die Lauflängencodierung auf die 20 Werte an und bestimmen Sie die Länge in Bit.
  2. Schätzen Sie ab, wie lang die Codierung einer Stunde im ungünstigsten und im günstigsten Fall wird.
  3. Implementieren Sie eine Python-Funktion lauflaenge(werte), die zu einer Liste von Werten die Liste der Paare liefert (Anzahl höchstens 15).
  4. Beurteilen Sie den Vorschlag, die Temperaturen vor dem Codieren auf ganze 2 Grad zu runden.

Hinweise

Hinweis zu Aufgabe a)
Längster erlaubter Lauf: \(2^{4}-1=15\).
Hinweis zu Aufgabe b)
Ungünstig: jeder Wert anders. Günstig: alle 60 gleich.
Hinweis zu Aufgabe c)
Zwei Schleifen: außen über die Liste, innen so lange zählen, wie der Wert gleich bleibt und die Anzahl unter 15 liegt.
Hinweis zu Aufgabe d)
Was passiert mit den Läufen, was mit der Genauigkeit?Beurteilen: Zu einem Sachverhalt ein selbstständiges Urteil unter Verwendung von Fachwissen und Fachmethoden formulieren und begründen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

6-mal 21, dann 14-mal 22: Paare (6, 21), (14, 22) → \(2\cdot12=24\) Bit statt \(20\cdot8=160\) Bit.

Erwartungshorizont zu Aufgabe b)

Ungünstig: 60 Paare → 720 Bit statt 480 Bit (150 %). Günstig: 60 = 15 + 15 + 15 + 15 → 4 Paare → 48 Bit (10 %).

Erwartungshorizont zu Aufgabe c)
def lauflaenge(werte):    paare = []    i = 0    while i < len(werte):        anzahl = 1        while (i + anzahl < len(werte) and               werte[i + anzahl] == werte[i] and anzahl < 15):            anzahl = anzahl + 1        paare.append((anzahl, werte[i]))        i = i + anzahl    return paare
Erwartungshorizont zu Aufgabe d)

Gerundete Werte ändern sich seltener → längere Läufe, kürzerer Code. Dafür ist das Verfahren insgesamt verlustbehaftet: Die genaue Temperatur ist nicht mehr rekonstruierbar. Sinnvoll, wenn eine Genauigkeit von 2 Grad genügt (z. B. Raumklima-Anzeige), nicht für wissenschaftliche Messreihen.