Dies ist eine Neuauflage einer alten Herausforderung , um die E / A-Anforderungen an unsere aktuellen Standards anzupassen. Dies geschieht, um mehr Sprachen die Teilnahme an einer Herausforderung zu dieser beliebten Sequenz zu ermöglichen. In diesem Meta-Post finden Sie eine Diskussion zum Repost.
Die Kolakoski-Sequenz ist eine unterhaltsame selbstreferenzielle Sequenz, die die Ehre hat, die OEIS-Sequenz A000002 zu sein (und die viel einfacher zu verstehen und zu implementieren ist als A000001). Die Sequenz beginnt mit 1 , besteht nur aus 1 s und 2 s und das Sequenzelement a (n) beschreibt die Länge des n- ten Laufs von 1 s oder 2 s in der Sequenz. Dies definiert eindeutig die Reihenfolge (mit einer Visualisierung der Läufe darunter):
1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,1,2,...
= === === = = === = === === = === === = = === = = === === = === =
1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1,1, 2, 2, 1, 2, 1,...
Ihre Aufgabe ist es natürlich, diesen Ablauf umzusetzen. Sie können dazu eines von drei Formaten auswählen:
- Nehmen Sie eine Eingabe n und geben Sie den n- ten Term der Sequenz aus, wobei n entweder bei 0 oder 1 beginnt .
- Nehmen Sie eine Eingabe n und geben Sie die Terme bis einschließlich des n- ten Terms der Sequenz aus, wobei n entweder mit 0 oder 1 beginnt (dh entweder die ersten n oder die ersten n + 1 Terme ausgeben ).
- Ausgabewerte aus der Sequenz auf unbestimmte Zeit.
Im zweiten und dritten Fall können Sie jedes vernünftige, eindeutige Listenformat auswählen. Es ist in Ordnung, wenn es kein Trennzeichen zwischen den Elementen gibt, da sie per Definition immer eine einzelne Ziffer sind.
Im dritten Fall können Sie, wenn es sich bei Ihrer Einreichung um eine Funktion handelt, auch eine unendliche Liste oder einen Generator in Sprachen zurückgeben, die diese unterstützen.
Sie können ein Programm oder eine Funktion schreiben und eine unserer Standardmethoden zum Empfangen und Bereitstellen von Eingaben verwenden. Beachten Sie, dass diese Lücken standardmäßig verboten sind.
Das ist Code-Golf , also gewinnt die kürzeste gültige Antwort - gemessen in Bytes .