Aufgabenblatt 5 - Aufgabe 2 b)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabenblatt 5 - Aufgabe 2 b)
Hallo,

Ich habe anscheinend ein Verständnisproblem bei der Aufgabe:
Alle Tests bis auf den allerletzten funktionieren einwandfrei.
Wenn ich den Lösungsweg meines Programms beim letzten Test nachvollziehe/die Aufgabe manuell mit Stift und Papier löse, so kommt weder mein Algorithmus noch ich auf das richtige Ergebnis.
Mein Vorgehen:

Input-Liste: [(155, 21, 163, 0, 0), (53, 122, 224, 1, 0), (26, 237, 155, 2, 0), (173, 166, 73, 0, 1), (87, 46, 129, 1, 1), (106, 69, 192, 2, 1)]

Der größte Farbunterschied ist hier mit 237-21=216 die Farbe Grün. Der Durchschnitt ist 110.

Daher wird folgendermaßen sortiert: [(155, 21, 163, 0, 0), (87, 46, 129, 1, 1), (106, 69, 192, 2, 1), (53, 122, 224, 1, 0), (173, 166, 73, 0, 1), (26, 237, 155, 2, 0)]

Jetzt wird zwischen der 69 und der 122 geteilt und daher ergeben sich die beiden folgenden Listen, die nun abgearbeitet werden.

Liste 1: [(155, 21, 163, 0, 0), (87, 46, 129, 1, 1), (106, 69, 192, 2, 1)]

Liste 2: [(53, 122, 224, 1, 0), (173, 166, 73, 0, 1), (26, 237, 155, 2, 0)]

Nun wird Liste 1 abgearbeitet:

Der größte Farbunterschied ist hier mit 155-87=68 die Farbe Rot. Der Durchschnitt ist abgerundet 116.

Daher wird folgendermaßen sortiert: [(87, 46, 129, 1, 1), (106, 69, 192, 2, 1), (155, 21, 163, 0, 0)]

Jetzt wird zwischen der 106 und der 155 geteilt und daher ergeben sich die beiden folgenden Listen, die nun abgearbeitet werden.

Liste 1: [(87, 46, 129, 1, 1), (106, 69, 192, 2, 1)]

Liste 2: [(155, 21, 163, 0, 0)]

Hier ist mein Problem:
Laut der Lösung sollten die Einträge (87, 46, 129, 1, 1) und (173, 166, 73, 0, 1) unangetastet bleiben.
Macht an sich schon Sinn: Die Liste mit 6 Einträgen wird in diesem Fall in 2 gleich große Listen unterteilt, die jeweils nochmal geteilt werden, diesmal so, dass jeweils ein bzw. 2 Elemente in der Liste bleiben, womit dann auch N=0 ist und die beiden Listen mit Länge 2 jeweils gemittelt und gleichgesetzt werden.
Bei meiner obigen Liste allerdings werden dann die Elemente [(87, 46, 129, 1, 1), (106, 69, 192, 2, 1)] gemittelt und gleichgesetzt. Element [(155, 21, 163, 0, 0)] bleibt unangetastet.
Hier scheint mein Fehler zu sein.
Meine 2. Teilung der Liste scheint fehlerhaft zu sein, aber laut meiner gerade erbrachten Rechnung müsste das ganze so stimmen?
Vielleicht hilft mein Median-Cut-Bild mit N=4, welches nicht ganz so wie in der Abbildung 2 aussieht (https://ibb.co/71724Fy)

Vielen Dank bereits im Voraus!


Hallo Fabian,

du hast deine Abgabe bestimmt schon fertig.
Kann es sein, dass dein Fehler darin lag wie du Listen mit ungerader Länge geteilt hast?

Du schreibst:

Ich habe das zwischen 87 und 106 geteilt und alles läuft durch.

Vielleicht hilft es ja noch jemandem :slight_smile: