Hier ist eine einigermaßen triviale Sequenz, die nicht in der Online Encyclopedia of Integer Sequences enthalten ist .
Beginnen Sie mit einer leeren Sequenz und definieren Sie dann jeden Begriff als die Anzahl der Zeichen, die erforderlich sind, um auf Englisch alle Ziffern der Sequenz ohne Leerzeichen zu schreiben. *
Als Referenz ist die Anzahl der Zeichen aller (zehn Basis-) Ziffern in Englisch wie folgt:
zero one two three four five six seven eight nine
4 3 3 5 4 4 3 5 5 4
( Dies ist der Start von A52360 und A5589 .)
Dies macht den ersten Eintrag zu da in der leeren Sequenz null Stellen vorhanden sind.
Dies macht den zweiten Eintrag zu da es vier Zeichen braucht, um "Null" zu schreiben, die einzige bisher vorhandene Ziffer.
Dies macht den dritten Eintrag zu da vier weitere Zeichen erforderlich sind, um die "Vier" zu schreiben, während insgesamt acht Zeichen erforderlich sind, um "Null" zu schreiben.
Dies macht den vierten Eintrag zu da fünf weitere Zeichen erforderlich sind, um "acht" zu schreiben, während insgesamt dreizehn Zeichen erforderlich sind, um "null - acht" zu schreiben.
Dies macht den fünften Eintrag zu da acht weitere Zeichen erforderlich sind, um "eins" zu schreiben, während insgesamt einundzwanzig Zeichen erforderlich sind, um "null - acht - drei" zu schreiben.
...und so weiter. Hier sind die ersten 100 Einträge:
0, 4, 8, 13, 21, 27, 35, 44, 52, 59, 67, 75, 84, 93, 102, 112, 121, 130, 142, 152, 162, 171, 182, 193, 205, 216, 225, 235, 247, 259, 270, 282, 293, 305, 318, 331, 344, 357, 371, 384, 398, 412, 422, 432, 444, 456, 467, 479, 492, 503, 516, 526, 536, 548, 561, 571, 583, 597, 610, 620, 630, 642, 652, 662, 671, 682, 693, 705, 718, 731, 744, 757, 771, 784, 798, 812, 823, 836, 849, 862, 873, 888, 903, 916, 926, 936, 948, 961, 971, 983, 997, 1010, 1024, 1038, 1055, 1070, 1086, 1101, 1114, 1127
* Wir könnten es für andere Sprachen und / oder andere Basen oder natürlich mit Leerzeichen definieren
Die Herausforderung
Wenn ausgegeben wird, kann in so wenigen Byte Code wie möglich Folgendes ausgeführt werden:
- Die ersten Terme der Sequenz (sollten für nicht negative ganze Zahlen funktionieren)
- Der Wert von (sollte für nicht negative ganze Zahlen funktionieren)
- Der te Term der Sequenz (sollte für positive ganze Zahlen funktionieren - dh Wert von )
Dies ist Codegolf, also gewinnt die kürzeste Antwort in Bytes für jede Sprache und die kürzeste Antwort in Bytes. Lassen Sie sich nicht von Golfsprachen davon abhalten, in Ihre Lieblingssprache einzutreten, sei es eine praktische oder eine esoterische!
quelle
1
ausgeben soll[0]
und0
ausgeben soll[]
oder 2)0
ausgeben soll[0]
(wie in meiner früheren Antwort)?Antworten:
Perl 6 , 45 Bytes
Probieren Sie es online!
Es ist kein ausgefallenes Modulieren erforderlich, wenn Sie den Namen der Ziffer direkt abrufen können! Anonymer Codeblock, der den n-ten Wert der Sequenz zurückgibt, oder Sie können einen Bereich übergeben, um eine Werteliste abzurufen
Erläuterung:
quelle
»
ist ein Byte, richtig? Auch[+]
könnte niedlicher sein und andeuten, wie binäre Operationen zu Reduzierungen werden können, abersum
es sind auch drei Bytes und im Einklang mit dem Rest der Lösung, die möglicherweise nicht die kürzeste ist, aber sicher die eleganteste Golf-Imo.»
besteht aus zwei Bytes und ist daher austauschbar.say '»'.encode('latin1').bytes
angezeigt wird1
. :)JavaScript (ES6),
69686158 ByteGibta(n) .
Probieren Sie es online!
Wie?
Eine Zifferd wird in eine Anzahl n von Buchstaben umgewandelt mit:
Da die Zahl in Ziffern aufgeteilt ist, können wird× 100 + 10 indem wir einfach 10 addieren (als Zeichenfolgenverkettung).
quelle
Stax ,
1413 BytesFühren Sie es aus und debuggen Sie es
Die wichtigste Erkenntnis hier ist, dass für die Eingabe
d
von Ziffern((4 - 2 * d) // 3) % 3 + 3
Buchstaben erforderlich sind . (Das ist Python-Ganzzahl-Division und nicht-negativer Modul im Python-Stil.)quelle
Pip , 21 Bytes
Erläuterung
quelle
large constant to the power of pi
und war monumental beeindruckt. (Es ist immer noch beeindruckend, aber meine anfängliche Interpretation war nur .. mehr)Wolfram Language (Mathematica) , 57 Byte
Probieren Sie es online!
Tr@StringLength@IntegerName@IntegerDigits@#&
listet die Ziffern von auf#
, konvertiert sie in einen englischen Namen, zählt die Länge und summiert die Ergebnisse. Viele Dinge laufen über Listen, es ist sehr aufregend. Dann wenden wir die Definition einfach iterativ an.TIO beschwert sich, dass es keine Internetverbindung gibt, aber ich weiß nicht warum, weil es sowieso die richtige Antwort findet. Vielleicht wird nach Updates für die Namen von ganzen Zahlen gesucht?
Nest
NestList
quelle
Sauber , 82 Bytes
Probieren Sie es online!
quelle
05AB1E ,
1514 BytesProbieren Sie es online!
Erläuterung
quelle
APL (Dyalog Unicode) ,
2928 BytesProbieren Sie es online!
Dfn. Drucktf( i n p u t )
Vielen Dank an die Jungs von The APL Orchard für ihre Hilfe:
@ngn für 2 Bytes; @ H.PWiz für
34 Bytes.Verwenden Sie jetzt die Formel von @ recursive.
Wie:
quelle
Python 2 , 61 Bytes
Probieren Sie es online!
Verwendet die rekursive Ziffernanzahlzuordnung .
Python 2 , 63 Bytes
Probieren Sie es online!
Eine rekursive Funktionsversion. Die Ausführung nimmt exponentiell viel Zeit in Anspruch, da es zwei rekursive Aufrufe von gibt
f(n-1)
.quelle
+3
und auf arithmetische Operatoren (nicht bitweise) und Zahlen <= 4 beschränkt habe, habe ich diese Lösung gefunden, aber nichts kürzeres oder sogar die gleiche Länge außer Äquivalenten.Python 2 , 71 Bytes
Probieren Sie es online!
quelle
f=lambda n,k=0:n and f(n-1,k+sum(632179420>>3*int(d)&7for d in`k`))or k
ist derselbe Zähler, vermeidet jedoch die Ausgabe einer umschließenden Liste.MathGolf , 17 Bytes
Probieren Sie es online!
Dies verwendet die Methode von Arnauld . Gibt das n-te Element der Sequenz aus. Ist die leere Zeichenfolge in Ordnung für
a(0)
, können wir den0\
am Anfang entfernen .Erläuterung:
quelle
Pyth , 21 Bytes
Probieren Sie es hier online aus .
quelle
Sehr wahrscheinlich ist kein einziges Byte in Pyths Codepage. (Ich denke, es verwendet UTF-8, in diesem Fall sind es 3 Bytes und esj7163 3
hat die gleiche Länge; aber tio.run sagt, Pyth hat ein SBCS. Mysteriös!)Ruby , 54 Bytes
Probieren Sie es online!
quelle
Java (JDK) , 95 Byte
Probieren Sie es online!
quelle
JavaScript (Node.js) , 82 Byte
Probieren Sie es online!
quelle
Jelly , 13 Bytes
Probieren Sie es online!
0-indiziert.
Volles Programm; Nimmt Eingaben von STDIN entgegen.
quelle
Rot ,
99 bis95 BytesProbieren Sie es online!
Nur eine einfache Lösung.
quelle
J , 37 Bytes
Probieren Sie es online!
Wendet die Methode von Arnauld an
Erläuterung:
Das Argument ist
n
quelle
Bearbeitet nach dem 1. Kommentar.
Druckt alle Begriffe
Scala, 76 Bytes
Probieren Sie es online!
Drucke n th Ausdruck aus
Scala, 72 Bytes
Scala, 69 Bytes
Scala, 67 Bytes
Scala, 67 Bytes
Probieren Sie es online!
quelle
n
definierten REPL ). Wenn Sie Scala kennen, ist es wahrscheinlich leicht zu beheben. Beachten Sie auch, dass es in Scala Fragen Tipps zum Golfen gibt, die helfen können. Schließlich ist es schön, einen Link zu einem Online-Dolmetscher zu veröffentlichen. TIO hat Scala und wird von vielen PPCG-Mitgliedern verwendet.