Einführung
OEIS-Folge A127421 ist die Folge von Zahlen, deren Dezimalerweiterung eine Verkettung von 2 aufeinanderfolgenden aufsteigenden nicht-negativen Zahlen ist. Einfach ausgedrückt, wird jede Zahl in der Folge gebildet, indem n mit n + 1 für einen nicht negativen ganzzahligen Wert von n zusammengesetzt wird . Die ersten Begriffe sind:
1, 12, 23, 34, 45, 56, 67, 78, 89, 910, 1011, 1112, 1213, 1314, 1415, 1516, 1617, 1718, 1819, 1920, 2021, 2122, 2223, 2324, 2425, 2526, 2627, 2728, 2829, 2930, 3031, 3132, 3233, 3334, 3435, 3536, 3637, 3738, 3839, 3940, 4041, 4142, 4243, 4344, 4445, 4546,…
Herausforderung
Bei einer einzelnen positiven Ganzzahl n werden die ersten n Einträge der OEIS-Sequenz A127421 in aufsteigender Reihenfolge gedruckt.
- Die Ein- und Ausgabe kann in jedem akzeptablen Format erfolgen . Zeichenfolgen oder Zahlen können problemlos ausgegeben werden.
- Führende Nullen sind nicht zulässig.
- Es ist entweder ein vollständiges Programm oder eine vollständige Funktion zulässig.
- Für die Zwecke dieser Herausforderung ist n positiv und unter 100.
- Standardlücken sind standardmäßig nicht zulässig.
- Diese Frage ist Codegolf, also gewinnt die niedrigste Byteanzahl.
Hier sind einige Beispiele für Ein- und Ausgaben:
1 => 1 2 => 1, 12 3 => 1, 12, 23 10 => 1, 12, 23, 34, 45, 56, 67, 78, 89, 910
Wenn Sie Fragen haben, zögern Sie nicht zu fragen. Viel Glück.
PS Das ist meine erste Herausforderung. Hoffentlich macht das alles Sinn.
BEARBEITEN: Die Ausgabeeinschränkung wurde entfernt, um Zahlen oder Zeichenfolgen zuzulassen.
Antworten:
Gelee , 3 Bytes
Ein monadischer Link, der eine Ganzzahl akzeptiert, die eine Liste von Ganzzahlen ergibt
Probieren Sie es online!
Wie?
quelle
R , 32 Bytes
Probieren Sie es online!
Outgolfed von MickyT , also stimme dieser Antwort zu!
quelle
0
von der ersten Ausgabe zu entfernen .[-1]
anstatt sie zu verwenden,strtoi
oder schlägt dies in irgendeinem Randfall fehl?strtoi
wird zum Konvertieren von"01"
nach verwendet,1
da zurückgegebenpaste0
wirdc("01","12","23","34",...)
und wir nicht zurückgeben dürfen"01"
.1
Python 3 , 39 Bytes
Probieren Sie es online!
quelle
f-strings
kann zum Golfen verwendet werden! Gute Idee.Haskell,
3837 BytesProbieren Sie es online!
Danke an Cat Wizard für ein Byte!
quelle
<$>
als Ersatzmap
verwenden.Cubix , 19 Bytes
Probieren Sie es online!
Dies wird wie folgt auf den Würfel gewickelt
Beobachten Sie es laufen
Habe noch ein wenig Platz zum Spielen, aber im Moment
W
Weiterleiten an die Oberseite nach untenI1>
Richten Sie den Stack mit der Eingabe und 1 ein und leiten Sie ihn in die Hauptschleife umOSo;u
Geben Sie den Anfang des Stapels aus, fügen Sie Speicherplatz zum Stapeln hinzu, geben Sie aus, entfernen Sie und verwenden Sie-!@;Ou)
subtrahieren Sie die TOS von der Eingabe, wenn 0 stop else pop result, geben Sie die TOS aus und erhöhen Sie die TOS. Zurück in die Hauptschleife.quelle
Perl 6 ,
1918 BytesProbieren Sie es online!
Anonymer Codeblock, der den Bereich 0 bis n-1 mit 1 bis n mithilfe des Verkettungsoperators komprimiert und dann zu jedem Element 0 hinzufügt, um es zu einer Zahl zu zwingen und führende Nullen zu entfernen.
quelle
R ,
3029 BytesEin extra Byte dank @Giuseppe
Probieren Sie es online!
Eine meist mathematische Lösung, außer für die Verwendung
nchar()
und nichtfloor(log10())
. Ich war wirklich überrascht, dass es kürzer als die String- Version war.quelle
APL (Dyalog) ,
1312 BytesDank @FrownyFrog wird 1 Byte gespeichert
Probieren Sie es online!
quelle
(⍎⍕,∘⍕1∘+)¨⍳
Brachylog , 6 Bytes
Probieren Sie es online!
Erläuterung
quelle
Python 2 ,
4241 BytesProbieren Sie es online!
Rekursive Funktion, die eine gemischte Liste von Zeichenfolgen und Ganzzahlen zurückgibt
quelle
n and
Haskell , 34 Bytes
Probieren Sie es online!
quelle
Blüte , 88 Bytes
Blossom ist eine Graph-Programmiersprache, an der ich arbeite. Es können nur Graphen als Eingaben verwendet werden. Daher erwartet dieses Programm einen Graphen, der aus einem einzelnen Knoten besteht und dessen Bezeichnung eine Ganzzahl ist. Es wird ein Diagramm der verbundenen Kanten ausgegeben, das dem Array, das ich erhalten kann, am nächsten kommt, und das resultierende Diagramm wird zur Ausgabe gedruckt.
Eine nicht abgeschlossene Version des Codes lautet wie folgt:
Es werden zwei Regeln definiert: Eine aufgerufene
expand
, die (während es im aktuellen Diagramm einen Knoten mit einer Ganzzahlbezeichnung gibt) einen anderen Knoten mit seinem verketteten Inkrement erstellt und den Wert senkt. Es wird auch eine Kante zwischen diesen beiden Knoten erstellt. Diese Regel hat auch die Bedingung, dass x größer als 0 ist.Die
!
führt diese Regel so lange , wie es in der graphischen Darstellung aufgetragen werden kann, so dass in diesem Fall wird es ausgeführt , bis x 0 ist , und dann dieclean
entfernt Regel den 0 - Knoten und die Kante.Blossom ist nicht zum Golfen gemacht, aber es macht sich nicht schlecht, glaube ich. Wenn man bedenkt, was es ist. Es gibt momentan keine einfache Möglichkeit, Blütencode zu testen (und der Interpreter, an dem ich gerade arbeite, ist noch nicht ganz fertig und ein bisschen fehlerhaft), aber dies ist kein konkurrierender Eintrag!
quelle
JavaScript (Node.js) , 25 Byte
Probieren Sie es online!
quelle
f=n=>--n?[f(n),n]+-~n:1
Shakespeare , 703 Bytes
versuche es hier
ungolfed version
quelle
Groovy , 35 Bytes
Probieren Sie es online!
Ich kam in letzter Minute auf die Idee, * .with anstelle von .collect zu verwenden. Ich habe keine Ahnung, was
it+++it
analysiert wird, aber ob esit++ + it
oderit + ++it
beide dasselbe tun. Ich habe versucht, einen Weg zu finden, das <in .. <loszuwerden, indem ich es in 1..it verwandelte und dekrementierte, aber ich glaube nicht, dass es kürzer werden würde.quelle
a+++b
, dieser Test schlägt es von links nach rechts analysiert wird, was bedeutet(a++)+b
.C (gcc) ,
4443 BytesProbieren Sie es online!
quelle
%m$
Formatbezeichner "bezeichnet die Position des gewünschten Arguments in der Argumentliste, indiziert ab 1" (printf(3)
Manpage) . Es ist ziemlich praktisch, solange Ihre C-Bibliothek es unterstützt!%d%d
(und die Reihenfolge der Argumente zu ändern) nicht funktioniert. (Ich habe es versucht, weiß aber nicht, warum es keine Ausgabe erzeugt.)" %d%d"
sollte+3*!f(i)
; andernfalls zeigt der Versatz +5 auf die NUL am Ende der Zeichenfolge.)i+1
, nichti
. Sehr interessant.Pyth ,
986 BytesProbieren Sie es online!
Erläuterung:
quelle
Gelee , 4 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Python 2 , 44 Bytes
Probieren Sie es online!
quelle
05AB1E , 6 Bytes
Probieren Sie es online!
Erläuterung
LεD<ìï
würde für die gleiche Anzahl von Bytes funktionieren, aber mit Listenausgabequelle
APL (Dyalog Classic) , 9 Bytes
Probieren Sie es online!
quelle
Haskell , 37 Bytes
Probieren Sie es online!
quelle
Japt
-m
,65 BytesProbieren Sie es online!
Kenne wie immer die Flaggen .
Ausgepackt und wie es funktioniert
quelle
ó
hier nicht ohne das geht2
.C # (Visual C # Interactive Compiler) ,
103716456 ByteGolf Versuchen Sie es online!
Ungolfed
Vollständiger Code
Ältere Versionen:
v1.2, 64 bytes
v1.1, 71 bytes
v1.0, 103 bytes
Releases
- 8 bytes
-Console
Dank raznagul wieder entfernt- 7 bytes
- EntferntSystem
dank raznagul-32 bytes
103 bytes
- Anfangslösung.Anmerkungen
quelle
System.Console
. Sie können also 15 Bytes einsparen, indem Sie es entfernen.Console.
: TIOJ, 14 Bytes
Probieren Sie es online!
quelle
2,&.":/\i.@>:
für 13 Bytes. Probieren Sie es online!ABAP, 101 Bytes
Eigentlich keine Golfsprache, aber ich habe viel Spaß damit
W ist der Eingangsterm, X ist der Zähler von 1, Y ist X-1 ab dem zweiten Durchgang, Z ist die verkettete Zeichenfolge.
quelle
Powershell,
2726 Bytes-1 Byte: Danke AdmBorkBork
Testskript:
quelle
1.."$args"
stattdessen ein Byte speichern .Python 2 , 41 Bytes
Probieren Sie es online!
quelle
PHP,
3332 BytesProbieren Sie es online
Alte Version
quelle
Javascript, 43
44,46,49,53BytesVorherige Versionen :
3 Bytes gespart, dank der @ Shaggy-Lösung (die besser ist als meine) zu entfernen
.keys()
quelle