Angenommen, eine Teilzeichenfolge ist ein zusammenhängender Abschnitt einer ursprünglichen Zeichenfolge. Zum Beispiel cat
ist ein Teilstring von concatenate
. Wir werden sagen, dass eine richtige Teilzeichenfolge eine Teilzeichenfolge ist, die nicht der ursprünglichen Zeichenfolge entspricht. Zum Beispiel concatenate
ist eine Teilzeichenfolge concatenate
eine richtige Teilzeichenfolge, aber nicht. (Einzelzeichenfolgen haben keine richtigen Teilzeichenfolgen)
Wir werden nun eine Sequenz mit diesen Begriffen definieren. Der n- te Term in dieser Sequenz ist die kleinste Zahl, sodass es einen geeigneten Teilstring seiner Binärdarstellung gibt, der kein Teilstring eines früheren Terms in der Sequenz ist. Der erste Begriff ist 10
.
Als Übung erzeugen wir die ersten 5 Terme. Ich werde in Binärform arbeiten, um die Dinge einfacher zu machen.
Der erste Begriff ist 10
. Da 11
die nächstkleinere Zahl nur eine richtige Teilzeichenfolge hat, 1
die auch eine Teilzeichenfolge von ist 10
, 11
ist sie nicht in der Sequenz. 100
Enthält jedoch die richtige Teilzeichenfolge, 00
die keine Teilzeichenfolge ist, 10
so 100
ist unser nächster Begriff. Als nächstes wird 101
die eindeutige richtige Teilzeichenfolge 01
angezeigt, die der Sequenz hinzugefügt wird. Anschließend wird 110
die richtige Teilzeichenfolge angezeigt, 11
die der Sequenz neu hinzugefügt wird.
Jetzt haben wir
10, 100, 101, 110
111
ist weiter oben, aber es enthält nur die Teilzeichenfolgen 1
und 11
macht es nicht zu einem Begriff. 1000
Enthält jedoch das 000
Hinzufügen zur Sequenz.
Hier sind die ersten paar Begriffe in Dezimalzahl
2, 4, 5, 6, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, 54, 56, 58
Aufgabe
Entweder
Nehmen Sie n als Eingabe und generieren Sie den n- ten Term in dieser Reihenfolge (entweder 0 oder 1 indiziert)
Kontinuierliche Ausgabe von Begriffen der Sequenz
Dies ist Code-Golf- Antworten werden in Bytes bewertet, wobei weniger Bytes besser sind.
n
) hinzufügen ?
a(36)
ist 47 (1 indiziert).