Sequenzen
Sie erhalten vier 1
durch nummerierte Zahlenfolgen 4
.
OEIS Der Ort
0
, an dem die natürlichen Zahlen binär aufgelistet sind. Hier ist ein Beispiel für die Berechnung der Sequenz:0,1,10,11,100,101,110,111 ^ ^ ^^ ^ ^ 0 3 78 10 14
Der Beginn der Sequenz sieht folgendermaßen aus:
0, 3, 7, 8, 10, 14, 19, 20, 21, 23, 24, 27, 29, 31, 36, 37, 40, 45, 51, ...
OEIS Diese Sequenz enthält die erste natürliche Zahl, überspringt die nächsten zwei, enthält dann die nächsten drei, überspringt dann die nächsten vier und fährt fort.
0, 3, 4, 5, 10, 11, 12, 13, 14, 21, 22, 23, 24, 25, 26, 27, 36, ...
OEIS Positive ganze Zahlen , wo sowohl die Anzahl der
0
‚s und die Anzahl der1
‘ s in der binären Darstellung der Zahl sind Kräfte der2
.2, 4, 5, 6, 9, 10, 12, 16, 23, 27, 29, 30, 33, 34, 36, 39,
OEIS Die Hofstadter Q- Sequenz .
a (1) = a (2) = 1;
a (n) = a (na (n-1)) + a (na (n-2)) für n> 2.1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 6, 8, 8, 8, 10, 9, 10, 11, 11, 12, 12, 12, 12, 16, 14, ...
Über diese Sequenz ist wenig streng bewiesen, aber es gibt viele empirische Ergebnisse. Eines ist besonders wichtig, und Sie können davon ausgehen, dass es für die gesamte Serie gilt:
In diesem Artikel wurde festgestellt, dass die Elemente der Serie in Generationen eingeteilt werden können. Wenn wir sie ab 1 nummerieren, enthält die k- te Generation genau 2 k Elemente. Die relevante Eigenschaft ist, dass alle Zahlen in der Generation k erhalten werden, indem zwei Zahlen aus den Generationen k-1 und / oder k-2 summiert werden , jedoch niemals aus früheren Generationen. Sie können diese (und nur diese) Beobachtung verwenden, um eine Untergrenze für die verbleibenden Elemente in der Sequenz festzulegen.
Herausforderung
Ihre Herausforderung besteht darin, die erste zu drucken x
Zahlen im Schnittpunkt der angegebenen Eingabesequenzen .
Eingabe: Zwei durch ein Leerzeichen getrennte Zahlen STDIN
. Die erste Zahl ist eine ganze Zahl von 1
bis 15
einschließlich, wobei jedes Bit einer Sequenz entspricht. Das niedrigste Bit entspricht der Sequenz 1
und das höchste entspricht der Sequenz 4
. Die zweite ist die Anzahl der Zahlen x
, auf die ausgegeben werden sollSTDIN
.
Ausgabe: Die ersten x
Zahlen, die sich mit den angegebenen Eingabesequenzen überschneiden. Drucken Sie die Zahlen aufSTDOUT
mit einem klaren Leerzeichen oder einer Interpunktion als Trennzeichen (Leerzeichen, Tabulatoren, Zeilenumbrüche, Kommas, Doppelpunkte, Punkte usw.) auf.
Beispiele
1. Drucken Sie die ersten 3
Zahlen in jeder Sequenz.
Eingang: 15 3
Ausgabe: 10,23,40
2. Drucken Sie die ersten 12
Zahlen in der Sequenznummer1
und 4
.
Eingang: 9 12
Ausgabe: 3,8,10,14,19,20,21,23,24,31,37,40
3. Drucken Sie die erste10
Zahlen nacheinander aus2
.
Eingang: 2 10
Ausgabe: 0,3,4,5,10,11,12,13,14,21
4. Drucken Sie die ersten 6
Zahlen in Sequenzen 3
und4
.
Eingang: 12 6
Ausgabe: 2,4,5,6,9,10
Einzelheiten
- Sie können die Ausgabe nach Belieben oder am Ende auf einmal drucken.
Vielen Dank an alle, die im Chat dabei geholfen haben! Diese Frage profitierte stark davon, im Sandkasten zu sein .
x
?
12 5
Beispiel auf den gleichen Index bringen, kommt sie dann10
tatsächlich9
in der Kreuzung vor ... Wie würden Sie beim Durchlaufen der Sequenzen entscheiden, ob Sie die9
Nummer 3 als mögliche Kreuzung überspringen möchten ? Als ob # 37
drin wäre, müssten Sie es überspringen, da dies nicht in # 4