Stellen Sie sich vor, Sie zählen die Elemente der wachsenden Rauten auf [1],[1,3,1],[1,3,5,3,1],…
(nur ungerade Zahlen, damit sie gut ausgerichtet sind). Dies würde wie folgt aussehen: Beachten Sie, dass Sie immer mit der Aufzählung beginnen mit 1
:
01
1 02 03 04
1 2 3 4 05 06 07 08 09 …
5 10 11 12
13
(1) (1,3,1) (1,3,5,3,1) (1,3,5,7,5,3,1) …
Wenn Sie nun mit der Summierung der Spalten ( [1],[2],[1,3,5],[4],[5],[2,6,10],…
) beginnen, erhalten Sie die Rautenfolge . Dies sind die ersten 100 Elemente dieser Sequenz:
1,2,9,4,5,18,35,24,9,10,33,60,91,70,45,16,17,54,95,140,189,154,115,72,25,26,81,140,203,270,341,288,231,170,105,36,37,114,195,280,369,462,559,484,405,322,235,144,49,50,153,260,371,486,605,728,855,754,649,540,427,310,189,64,65,198,335,476,621,770,923,1080,1241,1110,975,836,693,546,395,240,81,82,249,420,595,774,957,1144,1335,1530,1729,1564,1395,1222,1045,864,679,490,297,100
IO
Sie können eine dieser drei Eingabe- / Ausgabemethoden auswählen (Sie müssen keine ungültigen Eingaben verarbeiten):
- Bei einer Ganzzahl n wird das n- te Element in dieser Sequenz ausgegeben (0- oder 1-indiziert, Ihre Wahl).
- Bei einer Ganzzahl n werden zuerst n Elemente dieser Sequenz ausgegeben
- Drucken Sie die Sequenz auf unbestimmte Zeit
Testfälle
Bitte beziehen Sie sich auf die ersten 100 Begriffe oben, hier sind einige größere Beispiele (1-indexiert):
101 -> 101
443 -> 1329
1000 -> 49000
1984 -> 164672
2017 -> 34289
2018 -> 30270
3000 -> 153000
JavaScript (ES7),
4241 Byte1 Byte dank @ovs gespeichert
0-indiziert. Ein Ausdruck in geschlossener Form, abgeleitet von A004737 .
Testfälle
Code-Snippet anzeigen
quelle
Befunge,
6260 BytesProbieren Sie es online aus!
Erläuterung
Wir beginnen mit dem Lesen der einbasierten Elementnummer n aus stdin und dem Speichern eines Duplikats.
Dann bestimmen wir, in welcher Raute wir uns befinden, indem wir eine ganze Zahl r bis hochzählen
r*r >= n
.Der Spaltenversatz von der rechten Seite der Raute c ist
r*r - n
.Um diesen Versatz um die Mittelachse zu reflektieren, prüfen wir, ob
c >= r
.Und wenn ja, dann wird das reflektierte c wird
r*2 - 2 - c
.Sobald wir das reflektierte c haben , ist die Summe der Spalte einfach
(c*2 + 1) * n
.quelle
APL (Dyalog) , 18 Bytes
Probieren Sie es online aus!
quelle
Gelee , 8 Bytes
Probieren Sie es online aus!
Wie es funktioniert
quelle