Betrachten Sie die folgende Reihenfolge:
1, 0, 1, 2, 4, 1, 6, 8, 0, 1, 2, 4, 6, 8, 1, 0, 2, 4, 6, 8, 1, 0, 2, 4, 6, 8, 0, 1, ...
Die geraden Ziffern beginnen bei 0 und sind in Läufe mit zunehmender Länge gruppiert. Sie sind zyklisch angeordnet, dh, sie werden in aufsteigender Reihenfolge sortiert, bis 8 erreicht ist, und dann von 0 zurückgespult . 1 trennt die Abläufe von geraden Ziffern und startet auch die Sequenz. Stellen wir uns vor, wie diese Sequenz gebildet wird:
1, 0, 1, 2, 4, 1, 6, 8, 0, 1, 2, 4, 6, 8, 1, 0, 2, 4, 6, 8, 1, ...
- ---- ------- ---------- -------------
run length: 1 2 3 4 5 ...
position of 1: X X X X X X ...
even sequence: 0, 2, 4, 6, 8, 0, 2, 4, 6, 8, 0, 2, 4, 6, 8 ...
Akzeptable Eingabe- und Ausgabemethoden:
Empfangen Sie eine Ganzzahl N als Eingabe und geben Sie den N- ten Term dieser Sequenz aus.
Empfangen Sie eine Ganzzahl N als Eingabe und geben Sie die ersten N Terme dieser Sequenz aus.
Drucken Sie die Sequenz auf unbestimmte Zeit.
Sie können für die ersten beiden Methoden zwischen 0- und 1-Indizierung wählen.
Sie können in jeder Programmiersprache mit den Standard-Eingabe- und Ausgabemethoden konkurrieren . Standardlücken sind verboten. Das ist Code-Golf , also gewinnt der kürzeste Code in jeder Sprache.
Antworten:
Haskell ,
5046 BytesProbieren Sie es online!
1#cycle[0,2..8]
Gibt die Sequenz als unendliche Liste zurück.-4 Bytes danke an Ørjan Johansen!
quelle
#
nur aus einer Zahl zusammensetzen. Probieren Sie es online!Gelee , 10 Bytes
Gibt die ersten n Elemente der Sequenz zurück.
Probieren Sie es online!
Wie es funktioniert
quelle
Unhalve
... Ist das nicht einfachDouble
?H
ist halbiert ,Ḥ
ist also nicht halbiert .ÆA
ist Arccosin , soÆẠ
ist Unarccosin .Schale ,
121110 BytesProbieren Sie es online!
Druckt die Sequenz auf unbestimmte Zeit.
Alternative:
Probieren Sie es online!
Erläuterung
Für die alternative Lösung:
Wir könnten auch tun
...ΘCN...
, weilΘ
"Standardelement voranstellen", das eine Null für Listen von ganzen Zahlen und eine leere Liste für Listen von Listen voranstellt.quelle
Python 3 , 52 Bytes
Nimmt einen 1-basierten Index und gibt True oder einen ganzzahligen Gleitkommawert zurück .
Probieren Sie es online!
quelle
Python 2 , 51 Bytes
Druckt die gesamte Sequenz.
Probieren Sie es online!
quelle
APL, 25 Bytes
Gibt den n-ten Ausdruck zurück.
Erläuterung
quelle
APL (Dyalog Unicode) ,
525956 BytesProbieren Sie es online!
Dies ist ein tradfn ( einf itional f unctio n ) ein Argument nimmt ,
k
und die ersten wiederkehrendenk
Elemente der Sequenz.Vielen Dank an @GalenIvanov für den Hinweis auf einen Fehler in der Funktion. Vielen Dank an @ Adám für 3 Bytes.
Wie es funktioniert:
Unten sind ein
Dfn
( d irect f unctio n ) und eine stillschweigende Funktion auch , dass die Herausforderung lösen, sowohl freundlicherweise von @ Adám vorgesehen.{⍵⍴1,∊1,⍨¨j⍴¨(+\¯1+j←⍳⍵)⌽¨⊂0,2×⍳4}
!⊢⍴1,∘∊1,⍨¨⍳⍴¨(⊂0,2×⍳4)⌽⍨¨(+\¯1+⍳)
Probieren Sie es online!quelle
JavaScript (ES6),
625452 BytesGibt den N- ten Term der Sequenz mit dem Index 0 zurück.
Demo
Code-Snippet anzeigen
quelle
C (gcc) 84 Bytes
Probieren Sie es online!
Eine Funktion (
f()
), die die Sequenz unendlich ausgibt, getrennt durch Leerzeichen.i
ist die Länge des aktuellen geraden Laufs.j
ist der Index im aktuellen geraden Lauf(2*j+++i*i-i)%10
gibt die richtige gerade Zahl an, wenn i und j (und die Schritte j) gegeben sind, die ((j + Tr (i))% 5) * 2 entspricht, wobei Tr (x) die x-te dreieckige Zahl ist (die die Zahl der geraden Zahlen ist) Zahlen, die vor dem aktuellen geraden Lauf gedruckt wurden;quelle
Java 8, 96 Bytes
Druckt auf unbestimmte Zeit jede Nummer in einer neuen Zeile.
Erläuterung:
Probieren Sie es hier aus.
quelle
Batch, 85 Bytes
Gibt den N-ten Term der Sequenz aus. Arbeitet durch Berechnung der nächsten Dreieckszahl.
quelle
Perl 5 , 44 Bytes
Probieren Sie es online!
Unendliche Ausgabe
quelle
{...;redo}
stattdo{...}while 1
J ,
464240 Bytes-6 bytes dank cole
Gibt die ersten N Terme dieser Sequenz aus.
Wie es funktioniert:
10|[:+:i.
- erzeugt eine Liste der Länge N von 0 2 4 6 8 0 2 4 ... Es werden einfach mod 10 der verdoppelten Elemente einer Liste von Ganzzahlen ab 0 verwendet.[:;[:#:&.>2^i.
- erzeugt eine Bitmaske zum Ausschneiden der obigen Liste.(1 bedeutet Start): 1 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 ... Findet 2 zur Potenz der aufeinanderfolgenden nicht negativen ganzen Zahlen, wandelt sie in Binärzahlen um, verflacht die list und nimmt nur die ersten N Items, so dass die Länge der beiden Listen gleich ist.
;@(1,&.><;.1)
- Teilt (schneidet) die Liste der geraden Ziffern in Unterlisten entsprechend der Zuordnung von Einsen und Nullen, fügt die Unterliste an 1 an und glättet schließlich die resultierende Liste]{.
- Nimmt nur die ersten N Elemente und entfernt die zusätzlichen Nummern in der Liste aufgrund der hinzugefügten Einsen.Probieren Sie es online!
quelle
{.({.[:;[:#:&.>2^i.);@(1,&.><;.1)(10|2*i.)
. Die Änderungen, die ich vorgenommen habe, bestanden darin, Haken zu verwenden und den rechten Zinken der Gabel umzugestalten, um die Funktionsweise der Gabeln zu nutzen. Ich mag den2^i.
Trick. Ich versuche jetzt, am linken Gabelzinken zu arbeiten.(10|2*i.)
->10|2*i.
Common Lisp, 74 Bytes
Probieren Sie es online!
Druckt die Sequenz auf unbestimmte Zeit.
quelle
Perl 5, 35 Bytes
versuche es online
quelle
Gelee , 17 Bytes
Probieren Sie es online!
quelle
Proton , 55 Bytes
Probieren Sie es online!
Druckt die Sequenz auf unbestimmte Zeit
quelle
i=0 j=-2while1{
...-2while
ist genau wie Python undwhile1
liegt daran, dass ich Identifikatoren erstellt habe, die kein Schlüsselwort gefolgt von einer Zahl sein könnenJava (OpenJDK 8) , 107 Byte
Probieren Sie es online!
quelle
Mathematica, 68 Bytes
Gibt den N-ten Ausdruck zurück
Probieren Sie es online!
quelle
Wolfram Language (Mathematica) , 61 Bytes
Probieren Sie es online!
quelle
JavaScript, 45 Bytes
1 indiziert:
0 indiziert:
Code-Snippet anzeigen
quelle
Ruby ,
4846 BytesProbieren Sie es online!
Drucken Sie die Sequenz auf unbestimmte Zeit
quelle
Bash, 42 Bytes
oder 34 falls gültig
versuche es online
quelle