Meine Herausforderungen sind in der Regel etwas schwierig und unattraktiv. Also hier etwas einfaches und lustiges.
Alcuins Sequenz
Alcuins Sequenz A(n)
wird durch Zählen von Dreiecken definiert. A(n)
ist die Anzahl der Dreiecke mit ganzzahligen Seiten und Umfang n
. Diese Sequenz heißt nach Alcuin von York.
Die ersten Elemente dieser Sequenz, beginnend mit n = 0
:
0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ...
Zum Beispiel A(9) = 3
, weil die einzige Dreiecke mit ganzzahligen Seiten und Umfang 9
ist 1 - 4 - 4
, 3 - 3 - 3
und 2 - 3 - 4
. Unten sehen Sie die 3 gültigen Dreiecke.
In dieser Sequenz gibt es einige recht interessante Muster. Zum Beispiel A(2*k) = A(2*k - 3)
.
Weitere Informationen finden Sie unter A005044 zu OEIS.
Herausforderung
Ihre Herausforderung besteht jedoch in der binären Darstellung dieser Zahlen. Wenn wir jede Sequenznummer in ihre Binärdarstellung umwandeln, sie in Spaltenvektoren einfügen und in einer Linie anordnen, entsteht ein sehr interessantes Binärbild.
Im folgenden Bild sehen Sie die binäre Darstellung der Folgenummern A(0), A(1), ..., A(149)
. In der ersten Spalte sehen Sie die binäre Darstellung von A(1)
, in der zweiten Spalte die Darstellung von A(1)
und so weiter.
In diesem Bild sehen Sie eine Art sich wiederholendes Muster. Es sieht sogar irgendwie aus wie Fraktale, wenn man sich zum Beispiel das Bild mit den Folgenummern ansieht A(600), A(601), ..., A(899)
.
Ihre Aufgabe ist es, ein solches Bild zu erzeugen. Ihre Funktion, Ihr Skript wird zwei Ganzzahlen erhalten 0 <= m < n
, und es muss das Binärbild von Alcuins Sequenz erzeugen A(m), A(m+1), A(m+2), ..., A(n-2), A(n-1)
. Der Eingang 0, 150
erzeugt also das erste Bild, der Eingang 600, 900
das zweite Bild.
Sie können jedes gängige Grafikformat verwenden. Angenommen , jedes Format, das mit image.online-convert.com in png konvertiert werden kann . Alternativ können Sie das Bild auf dem Bildschirm anzeigen. Keine führenden weißen Zeilen erlaubt!
Das ist Code-Golf. So gewinnt der kürzeste Code (in Bytes).
white=1 and black=0
oder umgekehrt?
white=0 and black=1
. Also umgekehrt. A(0)
Erzeugt eine weiße Spalte, A(9)=3
erzeugt eine weiße Spalte mit 2 schwarzen Pixeln am unteren Rand.
0,0,0,1,0,2
zwar die Liste am Anfang der Frage besagt 0,0,0,1,0,1
.