Das älteste polnische Salzbergwerk in Bochnia * wurde im Jahr 1248 in Betrieb genommen, eine magische Zahl . Wir können sehen, dass es aus der Folge von Exponentiationen gleich 4 Ziffern ist: .
Da das Datum tatsächlich aus 4 Ziffern der Sequenz besteht, können wir es verlängern. Wir könnten den Vorgang wiederholen, bis wir unendlich sind. Die Sequenz würde so aussehen, wenn wir sie auf die Anzahl beschränken2048
124816326412825651210242048
Um es ein bisschen besser aussehen zu lassen, können wir die Zahlen trennen:
1|2|4|8|16|32|64|128|256|512|1024|2048
Versuchen wir eine benutzerdefinierte, längere Sequenz als das Datum. Nehmen wir an, wir möchten, dass es 5 Ziffern hat - es gibt mehr als eine Möglichkeit:
24816
81632
64128
Oder 3-stellige:
124
248
816
Wir könnten auch die 3-stelligen Zahlen hinzufügen, aber sagen wir mal, dass eine Sequenz haben muss mindestens zwei Zahlen haben muss .
* Es gibt keine Informationen dazu in der englischen Wikipedia. Wenn Sie die polnische Version eingeben - dann gibt es. Wenn Sie die Mine besuchen, werden die Arbeiter Ihnen auch mitteilen, dass sie im Jahre 1248 begonnen hat.
Die Herausforderung
Erstellen Sie eine Exponentiationssequenz wie in den obigen Beispielen mit 2 als Basis.
Wenn Sie eine Zahl zwischen 2 und 27 eingeben, geben Sie alle möglichen Teile der Sequenz (The 2048 eins oder größer, wenn Sie möchten) mit einer Anzahl von Ziffern aus, die der Eingabe entspricht. Sie können keine Zahl schneiden, also wie ausgeben481
ungültig, da 16 in zwei Hälften geschnitten wird.
Regeln:
- Standardlücken sind verboten.
- Sie können davon ausgehen, dass die Eingabe eine Zahl innerhalb des Bereichs ist.
- Ihr Programm kann Eingaben akzeptieren, die größer als der Bereich (28+) sind, aber die Punktzahl wird dadurch nicht erhöht / verringert.
- Leerzeichen in der Ausgabe werden ignoriert. Sie können like
124
oder like ausgeben4 8 16
. - Verschiedene Möglichkeiten sollten durch ein beliebiges Zeichen aus der Liste getrennt werden:
,./|
oder durch einen Zeilenvorschub. - Sie können als Array ausgeben.
- Jede Möglichkeit sollte mindestens 2 verschiedene Zahlen enthalten .
- Sie müssen einen Teil der Sequenz ausgeben. Sie können keine Zahlen mischen, die nicht nebeneinander stehen, wie z.
14
. - Eine fest codierte Ausgabe ist nicht zulässig. Sie können jedoch einen String / eine Nummer / ein Array mit der vollständigen Sequenz fest codieren.
- Eingang 27 sollte die vollständige 2048-Sequenz zurückgeben.
- Wie bereits erwähnt, schneiden Sie keine Zahlen . Ex.
16
muss bleiben16
- du kannst nicht verwenden481
- du musst verwenden4816
. - EDIT: Ich könnte etwas falsch gesagt haben; 2048 ist die letzte Nummer, die Ihr Programm unterstützen sollte. Sie können Unterstützung für größere ints hinzufügen.
Testfälle
Eingang: 2
12, 24, 48
Eingang: 3
124, 248, 816
Eingang: 4
1248, 4816, 1632, 3264
Eingang: 5
24816, 81632, 64128
Eingang: 27
124816326412825651210242048
Und spätere Nummern ...
Wenn ich in einem der Testfälle einen Fehler gemacht habe, teilen Sie mir die Frage mit oder bearbeiten Sie sie.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
quelle
Antworten:
05AB1E ,
121110 BytesUnterstützt die Reihenfolge bis
2^95 = 39614081257132168796771975168
Probieren Sie es online!
Erläuterung
Dank Erik the Outgolfer
1 Byte gespeichert Dank Riley 1 Byte gespeichert
quelle
X›
kann sein≠
Y₃Ým
sein₃Ýo
?Pyth,
22212017 BytesProbieren Sie es online
Erläuterung
quelle
fqQlTmjkdftlT.:m^2d12
fqQlTjLkftlT.:m^2d12
Jelly ,
19 1816 BytesMöglicherweise gibt es jetzt eine kürzere Lösung, in der wir einen beliebigen Grenzwert verwenden können (nicht nur 2048), obwohl diese Änderung der Spezifikation eine Ein-Byte-Einsparung gegenüber dieser Implementierung ermöglicht hat, indem ein Grenzwert von 32768
festgelegt wurde. --Yep. ..
-2 Bytes dank Erik the Outgolfer (Verwendung von
V
, um implizite richtige Argumentation des Filters und Verschärfung zu ermöglichen) -Ja, es ist sehr ähnlich zu seinem ineffizienten jetzt; geh und stimme ihm zu !
Ein monadischer Link, der eine Nummer aufnimmt und eine Liste von Nummern zurückgibt.
Probieren Sie es online!
Wie?
quelle
V
und es wird für 16 statt 1000 arbeiten:⁴Ḷ2*Ẇṫ17VDL$⁼¥Ðf
.Perl 6 ,
62,59 BytesProbieren Sie es online!
quelle
Japt ,
22,20,1916 BytesUnterstützt Eingaben bis,
639
aber Lücken erscheinen in der Sequenz nach234
(siehe die vollständige Liste der unterstützten Eingabebereiche hier ). Gibt ein Array von Strings aus.Probier es aus
I
(64) könnte durchL
(100) ersetzt werden, aber wir würden uns mit wissenschaftlicher Notation und Präzisionsungenauigkeiten befassen. Das Herausfiltern würde natürlich die Byteanzahl erhöhen und nur die maximale Eingabe auf erhöhen736
.quelle
Python 2 , 105 Bytes
Probieren Sie es online!
quelle
Schale ,
1817 BytesDie Ausgabe wird durch Zeilenumbrüche getrennt
Probieren Sie es online!
Wie?
quelle
Gelee , 16 Bytes
Probieren Sie es online!
Hinweis: sehr ineffizient. Gibt eine Liste mit Zahlen zurück.
quelle
ȷ
s (dh1000
) durch20
s (untere obere Grenze) zu ersetzen .[12, 24, 48]
.JavaScript (ES7),
102100 ByteDruckt alle passenden Teilsequenzen mit
alert()
.Demo
NB : Dieses Snippet puffert die Ergebnisse und druckt sie aus Gründen der Benutzerfreundlichkeit auf die Konsole.
Code-Snippet anzeigen
quelle
Haskell ,
7267 BytesProbieren Sie es online!
5 Bytes dank Laikoni gespart
Ich habe ein Limit von
99
weil verwendet2^99
hat eine Länge> 27
.quelle
length$(show$2^44)++(show$2^45)==28
.Mathematica, 122 Bytes
Eingang
Ausgabe
quelle
C 170 Bytes
Probieren Sie es online!
Abgerollt:
quelle
R , 99 Bytes
Probieren Sie es online!
quelle
Perl 5 , 76 Bytes
75 Byte Code + 1 für
-a
Probieren Sie es online!
quelle
Japt, 24 Bytes
Nach einiger Zeit, seit ich diese Frage gestellt habe, habe ich meine erste Golfsprache gelernt. Aus diesem Grund habe ich mich entschlossen, hier mein Glück zu versuchen.
Probieren Sie es online!
Die Punktzahl ist nicht die beste, sie ist nicht einmal gut, aber ich habe viel Zeit dafür gebraucht.
Ich verliere eine Menge Punkte, weil ã aus bestimmten Gründen nur Arrays mit einer Länge von x zurückgeben kann ... Es könnten sogar ~ 10 Bytes sein, wenn das nicht der Fall ist.
Erläuterung:
quelle
Ruby , 94 Bytes
Probieren Sie es online!
quelle