Einführung
Geben Sie alle Zahlen in einer bestimmten Basis aus, die in einer angepassten Version des Siebenerspiels erscheinen würden.
Herausforderung
Ihre Aufgabe ist es, alle Zahlen in einer bestimmten Basis in einem bestimmten Bereich auszugeben und diejenigen zu überspringen, die bestimmten Bedingungen entsprechen.
Sie erhalten vier Eingänge: base
elim
start
und end
. Die Rollen der vier Variablen sind wie folgt:
base
Gibt an, welche Basis wir für die anderen drei Variablen und auch für die Ausgabe verwenden. Eine Möglichkeit, dies auszudrücken, besteht darin, ein einzelnes Zeichen zu verwenden, das '8', '9' oder ein Großbuchstabe von 'A' bis 'Z' ist, wobei 'A' für das Dezimalsystem und 'G' für das Hexadezimalsystem verwendet werden. Die Basen, die voraussichtlich unterstützt werden, sind 8 bis 35 (einschließlich). Dies ist nur meine vorgeschlagene Art, das auszudrücken,base
und ich werde es im Abschnitt Beispiel für Eingabe und Ausgabe verwenden , aber es ist auch in Ordnung, Ihre eigene Art zu verwenden, um es auszudrücken. Beispielsweise können Sie das Formatbase
als übliche Dezimaldarstellung wählen .start
undend
sind zwei Zeichenfolgen, die den Bereich der auszugebenden Zahlen angeben, ausgedrückt in der angegebenenbase
. Wennbase
istG
undstart
ist10
undend
ist1F
, müssen Sie ausgeben10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
, aber Sie müssen auch einige davon entfernen, basierend auf dem, waselim
ist, was bald erklärt wird.elim
ist ein einzelnes Zeichen und muss eine gültige Ziffer in der angegebenen seinbase
. Alle Zahlen, die die Ziffer enthaltenelim
oder Vielfache von sind,elim
sollten aus der Liste entfernt werden, um die endgültige Ausgabe zu generieren.
Im obigen Fall, wenn elim
ist 7
, dann 17
müssen beseitigt werden , da sie die Ziffer enthält 7
. 15
und 1C
müssen auch beseitigt werden, weil sie ein Vielfaches von sind 7
. Die endgültige Ausgabe wäre also10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
Testfälle
Input -> Output
G,7,10,1F -> 10 11 12 13 14 16 18 19 1A 1B 1D 1E 1F
A,3,1,100 -> 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 26 28 29 40 41 44 46 47 49 50 52 55 56 58 59 61 62 64 65 67 68 70 71 74 76 77 79 80 82 85 86 88 89 91 92 94 95 97 98 100
G,A,96,C0 -> 97 98 99 9B 9C 9D 9E 9F B0 B1 B2 B3 B5 B6 B7 B8 B9 BB BC BD BF C0
Der dritte Testfall wird nach dem ursprünglichen Beitrag hinzugefügt. Alle Antworten, die vor der Bearbeitung veröffentlicht wurden, wurden getestet und haben den dritten Test bestanden.
Technische Daten
Die Eingabe ist immer gültig, machen Sie sich also keine Sorgen um die Ausnahmebehandlung.
Dies ist Code-Golf , die niedrigste Anzahl von Bytes gewinnt.
Sie können Eingaben vornehmen und Ausgaben über jedes Standardformular bereitstellen , und Sie können das Format frei wählen.
Wie üblich gelten hier Standardlücken .
Dies basiert auf der (realen) Version des Siebener-Spiels .
Ich
base
muss mindestens 8 sein, nur aufgrund des persönlichen Geschmacks. Ich möchte nur nicht, dass die Anzahl der Ziffern in der Sequenz zu schnell wächst.
Anzeigetafel
Ausschnitt aus dieser Frage . Führen Sie das Snippet aus, um die Anzeigetafel zu erhalten.
quelle
base,elim,start,end
, ‚A‘ für Dezimalsystem , ‚G‘ für hexadezimale System ), versuchen Sie Ihre Testfälle in einer Art und Weise zu formatieren, ist leicht zu Verwenden und verwenden Sie die Sandbox , um Feedback zu erhalten, bevor Sie sie auf der Hauptseite veröffentlichen. Insgesamt ist dies eine gute erste Herausforderung!start
,end
undelim
milder."G,7,10,1F"
Eingabe würde ein vollständig flexibler Ansatz beispielsweise[16,7,16,31]
als Eingabe und[[1,0],[1,1],[1,2],[1,3],[1,4],[1,6],[1,8],[1,9],[1,10],[1,11],[1,13],[1,14],[1,15]]
als Ausgabe ermöglichen. (Beachten Sie, dass bei der ersten Antwort davon ausgegangen wurde, dass ein Teil davon bereits zulässig war, da dies ziemlich normal ist - aber es liegt ganz bei Ihnen).Antworten:
Emojicode ,
141116 Bytesdanke an @NieDzejkob für 25 Bytes!
Probieren Sie es online aus!
quelle
Gelee ,
1211 Bytes-1 danke an Erik den Outgolfer (Verwendung von "Ordnung"
ọ
anstelle von teilbar mit getauschten Argumenten,ḍ@
)Ein vollständiges Programm, das drei Eingaben als Befehlszeilenargumente verwendet, die alle eine Dezimalschreibweise verwenden - eine Liste
[start, end]
und zwei Zahlen -base
undelim
die Jelly-Darstellung einer Liste von Listen druckt, wobei jede die Ziffern einer Zahl inbase
und jeder Ziffer darstellt ist eine Dezimalzahl (zB 1043 in Basis 20 wäre[2,12,3]
dh 2 × 20 2 + 12 × 20 1 + 3 × 20 0 ).Probieren Sie es online aus!
Ein kleiner Hinweis: Dies funktioniert nicht für Bereiche mit negativen Werten, aber die verknüpfte Herausforderung beginnt bei 1 und zählt hoch.
Wie?
quelle
ḍ@
kann seinọ
;) (übrigens hätte ich gepostetrọÐḟ⁶b⁵ċÐḟ⁶
...)ọÐḟ
könnte sein%Ðf
Julia 0,6 , 69 Bytes
Eingaben sind
base, elim, start:end
wostart:end
ist aUnitRange
. als Basis 10 ganze Zahlen. Gibt eine Liste von Zeichenfolgen der Zahlen in der angegebenen Basis aus. Filter für die Teilbarkeit in ganzzahliger Form, werdenbase.
zur elementweisen Konvertierung in Zeichenfolgen verwendet und filtern dann nach Zifferneinschluss. Genanntes Beispiel:f(10,3,1:100)
Probieren Sie es online aus!
quelle
Python 2 ,
10294 BytesProbieren Sie es online aus!
Ein- und Ausgabe erfolgt in Basis 10.
quelle
Perl 6 ,
9457 BytesTeste es (94)
Da sich die Regeln geändert haben:
Test it (Int, Int, Range) Die
Ausgabe ist eine Liste von Zeichenfolgen in der Basis
Erweitert
quelle
JavaScript, 82 Bytes
Ein Quickie bevor ich den Säufer drücke! Nimmt die Eingabe in Basis 10 in der Reihenfolge
base
,elim
,start
undend
und gibt einen Raum begrenzt Zeichenkette der Basis 10 Zahlen mit einem einzigen Leerzeichen.Probieren Sie es online aus
quelle
Japt , 16 Bytes
Hastig umgeschrieben, nachdem die Spezifikation geändert wurde, um eine dezimale Eingabe zu ermöglichen, kann dies wahrscheinlich verbessert werden.
Nimmt die Eingabe in der Reihenfolge
start
,end
,base
,elim
und gibt eine Reihe von Zahlen in der gegebenen Basis.Versuch es
Erläuterung
quelle
elim
wurde angegeben, dass es sich um eine einzelne Ziffer (dh0-9
) und nicht um ein einzelnes Zeichen in der Eingabebasis handelt.Java 8, 92 Bytes
Eingabe als
Integer (base), String (elem), int (start), int (end)
.Erläuterung:
Probieren Sie es online aus.
Die drei Testfälle werden folgendermaßen eingegeben:
quelle