Zyklisch selbstbeschreibende Listen
Eine Liste positiver Ganzzahlen ist zyklisch selbstbeschreibend , wenn die folgenden Bedingungen erfüllt sind.
- ist nicht leer.
- Das erste und das letzte Element von sind unterschiedlich.
- Wenn Sie in Läufe mit gleichen Elementen aufteilen , entspricht das Element jedes Laufs der Länge des nächsten Laufs und das Element des letzten Laufs der Länge des ersten Laufs.
Betrachten Sie zum Beispiel . Es ist nicht leer und das erste und das letzte Element sind unterschiedlich. Wenn wir es in Läufe , erhalten wir .
- Der erste Lauf ist ein Lauf von s und die Länge des nächsten Laufs ist .
- Der zweite Lauf ist ein Lauf von s und die Länge des nächsten Laufs ist .
- Der dritte Lauf ist ein Lauf von s und die Länge des nächsten Laufs ist .
- Der vierte Lauf ist ein Lauf von s und die Länge des nächsten Laufs ist .
- Schließlich ist der letzte Lauf ein Lauf von s und die Länge des ersten Laufs ist .
Dies bedeutet, dass eine sich zyklisch selbst beschreibende Liste ist.
Für ein Nicht-Beispiel ist die Liste nicht zyklisch selbstbeschreibend, da auf einen Lauf von s ein Lauf der Länge folgt . Die Liste ist auch nicht zyklisch selbstbeschreibend, da der letzte Lauf s dauert, der erste jedoch die Länge .
Die Aufgabe
In dieser Herausforderung ist Ihre Eingabe eine Ganzzahl . Ihre Ausgabe soll die Anzahl der sich zyklisch selbst beschreibenden Listen sein, deren Summe gleich . Zum Beispiel sollte zu , da die zyklisch selbstbeschreibenden Listen, deren Summe ist, , , und . Die niedrigste Byteanzahl gewinnt, und es gelten andere Standardregeln für Code-Golf .
Hier sind die korrekten Ausgabewerte für Eingaben von bis :
1 -> 0
2 -> 0
3 -> 0
4 -> 2
5 -> 0
6 -> 2
7 -> 0
8 -> 4
9 -> 0
10 -> 6
11 -> 6
12 -> 12
13 -> 0
14 -> 22
15 -> 10
16 -> 32
17 -> 16
18 -> 56
19 -> 30
20 -> 96
21 -> 56
22 -> 158
23 -> 112
24 -> 282
25 -> 198
26 -> 464
27 -> 364
28 -> 814
29 -> 644
30 -> 1382
31 -> 1192
32 -> 2368
33 -> 2080
34 -> 4078
35 -> 3844
36 -> 7036
37 -> 6694
38 -> 12136
39 -> 12070
40 -> 20940
41 -> 21362
42 -> 36278
43 -> 37892
44 -> 62634
45 -> 67154
46 -> 108678
47 -> 118866
48 -> 188280
49 -> 209784
50 -> 326878
n,1,...,1
, und jede ungerade Zahl größer als 13 kann durch Verketten 3,2,2,2,1,1
mit einer geraden Zahl erhalten werden. Der Beweis, dass 13 unmöglich ist, wird dem Leser als Übung überlassen.