Tämä asiakirja on saatavilla myös suomeksi. This document is also available in English.

Marko Mäkelä: Programmieren: regelmäßige Bettdecken

Zu Ostern 2003, als meine Frau auf unseren Erstling wartete, häkelten sie und meine Schwiegermutter eine bunte Bettdecke aus gemischter Wolle. Da die Bettdecke für mich zu zufällig auffiel, entschied ich, einige Farbmuster mit dem kleinsten möglichsten Anzahl Farben zu entwerfen.

[6farbige Bettdecke]Die bunte Bettdecke wurde aus Quadraten je 3 Farben zusammengestellt. Ich wollte eine Bettdecke aus allen möglichen Quadraten zusammenstellen, die irgendeine einfache Regel erfüllen. Vor allem sollten alle Farben in einem Quadrat unterschiedlich sein. Da die Reihenfolge der Farben in dem Quadrat eine Rolle spielt, kann man drei Farben von n in n×(n-1)×(n-2) Weisen wählen. Für n=6 bekommen wir 120 unterschiedliche Quadraten, die in einer Matrize von 12×10 untergebracht werden können.

[5farbige Bettdecke]Zunächst wollte ich natürlich herausfinden, ob die gleiche Anzahl Quadrate mit wenigeren Farben erreicht werden kann. Ich merkte: 120=5×4×3×2×1. Dies ist ein wichtiger Hinweis dafür, dass fünf Farben genügen. Tatsächlich, von der Gleichung ist es selbstklar, dass es 120 unterschiedliche Quadrate je 4 (oder 5) Farben gibt. Es hat etwas Zeit gedauert, ein schönes Muster aus den Quadraten zu entwerfen.

[4-colour cushion cover]Zu Ostern 2008 wollte meine Frau Kissendecken aus der Wolle häkeln, die von den Bettdecken übrig geblieben war. Aus vier Farben erhält man 24=4×3×2×1 unterschiedliche Quadrate je 3 (oder 4) Farben, oder 4×3 Quadrate auf beiden Seiten einer Kisse.

Die erzeugenden C-Programme geben die Bilder im NetPBM PPM-Format aus. Bitte schauen Sie sich den Quelltext des Erzeugers der 6farbigen Bettdecke, des Erzeugers der 5farbigen Bettdecke und des Erzeugers der 4farbigen Kissendecke an.