Einführung
Gijswijts Sequenz ( A090822 ) ist wirklich berühmt, WIRKLICH langsam. Um zu veranschaulichen:
- Die ersten 3 erscheinen im 9. Semester (in Ordnung).
- Die ersten 4 erscheinen im 220. Semester (weit weg, aber machbar).
- Die ersten 5 erscheinen (ungefähr) am 10 ^ (10 ^ 23) -ten Term (nur nein).
- Niemand weiß wirklich, wo die ersten 6 sind ... es wird vermutet, dass es an der ...
2 ^ (2 ^ (3 ^ (4 ^ 5))).
Sie können davon ausgehen, dass Sie sich nicht mit einer zweistelligen Zahl auseinandersetzen müssen.
Die Sequenz wird wie folgt generiert:
- Der erste Term ist 1.
- Jeder Ausdruck danach gibt die Anzahl der "Blöcke" an, die zuvor wiederholt wurden (wenn mehrere "Blöcke" wiederholt wurden, wird die größte Anzahl der wiederholten Blöcke verwendet).
Zur Verdeutlichung hier die ersten Begriffe.
1 -> 1, 1
(ein Wiederholungsblock ( 1
), also die aufgezeichnete Ziffer ist 1
)
1, 1 -> 1, 1, 2
(zwei Wiederholungsblöcke ( 1
), also die aufgezeichnete Ziffer ist 2
)
1, 1, 2 -> 1, 1, 2, 1
(ein Wiederholungsblock ( 2
oder 1, 1, 2
), also die aufgezeichnete Ziffer ist 1
)
1, 1, 2, 1 -> 1, 1, 2, 1, 1
(Du hast die Idee)
1, 1, 2, 1, 1 -> 1, 1, 2, 1, 1, 2
1, 1, 2, 1, 1, 2 -> 1, 1, 2, 1, 1, 2, 2
(zwei Wiederholungsblöcke ( 1, 1, 2
), also die aufgezeichnete Ziffer ist 2
)
Aufgabe
Ihre Aufgabe ist es, wie in der Frage angegeben, n Ziffern der Gijswijt-Sequenz zu generieren.
Anleitung
- Die Eingabe ist eine Ganzzahl
n
. - Ihr Code kann die Ziffern in beliebiger Form ausgeben (eine Liste, mehrere Ausgaben usw.).
Dies ist Code Golf, also gewinnt der kürzeste Code in Bytes.
._
Funktion und andere nützliche Funktionen in Pyth.