Herausforderung
Ausgehend von einer Basis und einem Index wird der Ausgabeterm wie folgt definiert:
- x i b 10 wird erhalten, indem zur Basis konvertiert und dann seine Ziffern in der Basis neu interpretiert werden
- Die Ausgabe sollte in Basis
Ein Spaziergang durch Basis 5, Term 5, wäre:
- .
- × 2 = 21 10 also .
- × 3 = 41 10 also .
- also .
- also .
- Wir geben den String
"1011"
oder die ganze Zahl aus1011
.
Testfälle
Hinweis: Dies sind indizierte
base 2, term 5 --> 1100100111110011010011100010101000011000101001000100011011011010001111011100010000001000010011100011
base 9, term 70 --> 1202167480887
base 8, term 30 --> 4752456545
base 4, term 13 --> 2123103032103331200023103133211223233322200311320011300320320100312133201303003031113021311200322222332322220300332231220022313031200030333132302313012110123012123010113230200132021023101313232010013102221103203031121232122020233303303303211132313213012222331020133
Anmerkungen
- Standardlücken sind nicht erlaubt
- Jede Standard-E / A-Methode ist zulässig
- Sie können verschiedene Indizes (z. B. 0-indexiert, 1-indexiert, 2-indexiert usw.) für
- Sie können die ersten Terme ausgeben .
- Da dies Codegolf ist , gewinnt der kürzeste Code für diese Sprache
11
als ob es in der Basis wäre,b
und es zurück in die Basis 10 usw. konvertieren.)4a
keine gültige Zahl in base-104a
, da Sie die 10er-Stellen der Basis als Basis interpretierenb
und jedes Mal in die 10er-Basis konvertieren würden (dh umgekehrt von dieser Frage).Antworten:
JavaScript (Node.js) , 40 Byte
Vielen Dank an @Neil für das Speichern von 5 Bytes in dieser Version und 2 Bytes in der BigInt-Version
Nimmt die Eingabe als ant 1-indiziert ist.
(t)(base)
, wobeiProbieren Sie es online!
JavaScript (Node.js) , 48 Byte (BigInt-Version)
Nimmt die Eingabe als ant 1-indiziert ist. Gibt ein BigInt zurück.
(t)(base)
, wobeiProbieren Sie es online!
quelle
eval
in der ersten Version?+
würde 5 Bytes sparen ...BigInt
spart in der zweiten Version zwei Bytes, da Sien
den String nicht ergänzen müssen .(b,t,x=11)=>--t?f(b,t,+x.toString(b)):x
ist 1f=
(da die Funktion sich selbst referenziert).n=>b=>g=(x=11n)=>--n?g(BigInt(x.toString(b))):x
:) Wenn Anruff(t)(b)()
erlaubt ist.05AB1E , 5 Bytes
Probieren Sie es online!
Erläuterung
Beachten Sie, dass die Sequenz nicht explizit bei 11 beginnen muss .
Wenn Sie mit
base+1
einer zusätzlichen Iteration beginnen, wird die erste Iteration 11 ergeben .quelle
Japt , 9 Bytes
Versuch es
quelle
Wolfram Language (Mathematica) , 46 Byte
Probieren Sie es online!
Mit anrufen
f[base][t]
. 0-indiziert.quelle
Retina , 67 Bytes
Probieren Sie es online! Übernimmt kommagetrennte Eingabent (0-indiziert) und b . Wenn alle Berechnungen unärgerlich sind, ist die Zeit für große Zahlen abgelaufen. Erläuterung:
Initialisierex0= 11 und wandle b in unär um.
Wiederholen Siet mal.
Wandlexich in unär um.
In Basis konvertierenb .
Löschen Sieb aus der Ausgabe.
quelle
Python 2 , 71 Bytes
Probieren Sie es online!
0-indiziert.
quelle
Clojure , 109 Bytes
Dank an MilkyWay90 für das Entfernen von 10 Bytes durch Auffinden unnötiger Leerzeichen. Dank an Ausführungsform der Ignoranz für ein anderes Byte aus einem anderen unnötigen Leerzeichen
Golf gespielt
Ungolfed
Ich denke, dass die Hauptplatzbytes gespeichert werden könnten, ist der Ausdruck für ... erneutes Mischen? wie auch immer das heißen würde. Speziell:
quelle
(if (= t 1)
Perl 6 , 28 Bytes
Probieren Sie es online!
Der Index in der Sequenz basiert auf Null.
quelle
Gelee ,
87 BytesProbieren Sie es online!
Erläuterung
quelle
K (ngn / k) , 13 Bytes
Probieren Sie es online!
quelle
Pyth , 8 Bytes
Probieren Sie es online!
quelle
C # (Visual C # Interactive Compiler) , 87 Byte
5 Bytes gespart dank @KevinCruijssen
Probieren Sie es online!
quelle
do-while
in eine reguläre for-Schleife.Brainfuck , 270 Bytes
Probieren Sie es online!
0-indiziert. Es wird angenommen, dass die Anzahl der Iterationen höchstens 255 beträgt.
Erläuterung
Das Band ist wie folgt aufgebaut:
Jede Ziffer wird tatsächlich als diese Ziffer plus 1 gespeichert, wobei 0 für "keine weiteren Ziffern" reserviert ist. Während der Basiskonvertierung werden die aktuell bearbeiteten Ziffern um eine Zelle nach rechts und die Basis links vom aktuellen Arbeitsbereich verschoben.
quelle
Holzkohle , 14 Bytes
quelle
Pari / GP , 50 Bytes
Probieren Sie es online!
quelle
C (gcc) , 59 Bytes
Probieren Sie es online!
quelle
Groovy , 45 Bytes
Probieren Sie es online!
Port of @ Arnauld's Antwort
quelle
PHP ,
8375 BytesProbieren Sie es online!
Dieser funktioniert nur mit "kleinen" Zahlen (zB nicht mit Testfällen 1 und 4)
quelle
Japt , 10 Bytes
0-indiziert. Nimmt
t
als erste Eingabe,b
als zweite.Versuch es
quelle
Gaia , 8 Bytes
Probieren Sie es online!
Nimmt 0-basiert
iterations
dannbase
.quelle
Ruby , 39 Bytes
Nullindexiert.
Probieren Sie es online!
quelle
Perl 5
-Mbigint -pa
, 65 BytesProbieren Sie es online!
quelle