Zeigen Sie Zahlen von eins bis einhundert (in aufsteigender Reihenfolge) an, aber Nummer 2 sollte an keiner Stelle in der Sequenz erscheinen. So sollten zum Beispiel die Zahlen zwei ( 2
) oder dreiundzwanzig ( 23
) nicht in der Reihenfolge sein.
Hier ist eine Beispielausgabe mit Zeilenumbrüchen, die die Zahlen trennen:
1
3
4
5
6
7
8
9
10
11
13
14
15
16
17
18
19
30
31
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
65
66
67
68
69
70
71
73
74
75
76
77
78
79
80
81
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
100
code-golf
sequence
kolmogorov-complexity
Monolica
quelle
quelle
[code-golf]
. Hier finden Sie eine Liste aller verfügbaren Gewinnkriterien-Tags zur späteren Bezugnahme.Antworten:
05AB1E , 6 Bytes
Probieren Sie es online!
Erläuterung
quelle
Taxi ,
239923912370178317731706 Bytes-8 Byte für die Erkenntnis, dass es sich lohnt, einen bestimmten Passagier von der Riverview Bridge zu werfen, anstatt ihn für immer im Sunny Side Park zu lassen. Ah, was für eine schöne Stadt das ist.
-21 Bytes für das Herausnehmen eines Kommentars, den ich dummerweise hinterlassen habe.
-587 Bytes durch einfaches Ändern der gesamten Vorgehensweise (anscheinend ist ein kürzerer Weg arithmetisch; Ganzzahliges Teilen [17, 27, 37, 47, ...] durch 9 ergibt die Folge, aber Sie müssen die überspringen 20er selbst.)
-17 Bytes für die Erkenntnis, dass eine Zeichenkette in Anführungszeichen ohne Leerzeichen keine Anführungszeichen benötigt (danke Jo King!).
-67 Byte für die Feststellung, dass Zeilenumbrüche optional sind.
Probieren Sie es online!
Dieser gewinnt mir in absehbarer Zeit keine Code-Golf-Wettbewerbe mehr, aber ich habe mich entschlossen, das esolang-Taxi auszuprobieren.
Taxi ist ein Esolang, bei dem die gesamte Programmierung durch das Abholen und Absetzen von Passagieren an verschiedenen Haltestellen in der fiktiven Stadt Townsburg erfolgt. Natürlich geht Ihrem Taxi manchmal das Benzin aus, daher müssen Sie auch ab und zu Tankstellen aufsuchen und mit den Gutschriften bezahlen, die Sie als Fahrpreis erhalten (in diesem Fall muss ich nur für Benzin anhalten - bei Go More - einmal pro Schleifeniteration!).
Ich habe einige Tricks angewendet, um die Dateigröße ein wenig zu verringern, z. B. das Umformulieren von Anweisungen wie z.
east 1st left, 2nd right
B. dase 1 l 2 r
Entfernen desthe
optionalen Wortes und die Verwendung der am wenigsten komplizierten Route zu allen meinen Zielen (nicht unbedingt der kürzeste Weg).Ich hasse diese kürzere Lösung mehr als die, die mir ursprünglich einfiel. Diese Lösung ist eine allgemeinere Methode zur Ausführung der Aufgabe, die an einer beliebigen Stelle beginnen und enden kann. Hier ist es in seiner Gesamtheit.
2245 Bytes (viel allgemeiner)
Probieren Sie es online!
Und wenn Mega-Cheating erlaubt ist, ist dieses viel kürzer als eines der beiden letzten.
456 Bytes (total betrogen)
Probieren Sie es online!
quelle
Python 2 , 39 Bytes
Probieren Sie es online!
Verwendet arithmetische Operationen nur zum Generieren von Zahlen ohne 2en.
Der Wert
k
folgt der arithmetischen Progression17, 27, 37, 47, ...
, die, wenn durch 9 dividiert1,3,4,5,6,7,8,9,10,11,13,14,...
, Zahlen ergibt, die nicht mit 2 enden. Um 20 bis 29 zu überspringen, werden die Ausgaben um 10 nach einem bestimmten Schwellenwert erhöht.quelle
JavaScript (ES6), 43 Byte
Gibt die Sequenz als durch Kommas getrennte Zeichenfolge zurück.
Probieren Sie es online!
Warum das so machen?
Wir könnten von1 bis 100 iterieren und jede Zahl mit testen
/2/.test(n)
, was eine ziemlich knappe Aussage ist. Aber in diesem Szenario müssten wir leere Einträge mit so etwas wie behandeln(/2/.test(n)?'':...)
, was ein paar Bytes mehr hinzufügt.Dies würde zum Beispiel für 45 Bytes funktionieren :
Oder dies würde für 44 Bytes funktionieren , wenn ein führendes Komma akzeptabel ist:
Alles in allem (und bis zum Beweis des Gegenteils) stellt sich heraus, dass es kürzer ist, alle Werte von n , die eine 2 enthalten , sofort zu überspringen .n 2
Kommentiert
quelle
R , 19 Bytes
Probieren Sie es online!
quelle
grep(2,1:100,inv=T)
für 19.v=F
auch, weil ich mir natürlich dachte, ich will die Werte und nicht die Indizes ... duh!^[^2]*$
was, ähm, nicht kürzer ist.Python 2 , 44 Bytes
Probieren Sie es online!
quelle
Perl 6 , 22 Bytes
Probieren Sie es online!
Es gibt wahrscheinlich eine bessere Möglichkeit, den Codeblock zu erstellen, aber ich konnte kein reguläres Adverb finden, um die Übereinstimmung umzukehren
quelle
PowerShell ,
2216 BytesProbieren Sie es online!
-6 bytes dank mazzy
Erzeugt den Bereich
1
bis100
und zieht dann die Objekte heraus, an denen sie-notmatch
die Nummer haben2
. Wenn Sie das-notmatch
gegen ein Array wie dieses ausführen, wirkt es wie ein Filter im Array. Jedes Element verbleibt in der Pipeline, und die Ausgabe ist implizit.quelle
1..100-notmatch2
Haskell ,
483331 BytesVielen Dank an @JonathanFrech für fünfzehn Bytes und @xnor für zwei weitere! Ich habe einen großen Golf verpasst und wusste nicht, dass
main=print$
man darauf verzichten kann.Probieren Sie es online!
Leicht zu erweitern durch Ändern der
100
. Stringifiziert alle Zahlen und behält nur die ohne ein'2'
.quelle
main=print$
ist nicht nötig. Hast du deinen Code getestet? Ich denke nicht, dasselem'2'
das gültige Syntax ist. Warummap
? Macht einfachfilter(not.elem '2'.show)[1..100]
den Job.notElem
dafürnot.elem
, ist aber noch kürzerall(/='2')
.Bash + GNU-Dienstprogramme, 16
Probieren Sie es online!
quelle
Japt , 7 Bytes
Probieren Sie es online!
quelle
Java 10, 67 Bytes
Probieren Sie es online aus.
Erläuterung:
quelle
Retina ,
1917 BytesProbieren Sie es online! Bearbeiten: 2 Bytes dank @ovs gespeichert, obwohl die letzte Zeile jetzt eine neue Zeile enthält. Erläuterung:
Fügen Sie 100 Zeichen ein.
Ersetzen Sie jedes Zeichen durch die Anzahl der Zeichen bis einschließlich dieses Zeichens sowie eine neue Zeile.
Entfernen Sie alle Einträge, die a enthalten
2
.quelle
.
$.>`¶
für die zweite Stufe?L$
um eine führende Newline zu vermeiden, also hatte ich nicht realisiert, dass ich zurückwechseln konnte, danke.Stax , 6 Bytes
Führen Sie es aus und debuggen Sie es
Entpackt, ungolfed und kommentiert sieht es so aus.
Führen Sie dieses aus
quelle
Wolfram Language (Mathematica) , 42 Byte
Probieren Sie es online!
Die arithmetische Sequenz 1, 19/9, 29/9, 39/9, ... wächst mit der richtigen Geschwindigkeit, sodass bei der Berechnung der Obergrenze alle mit 2 endenden Zahlen übersprungen werden. Dann werden 20 bis 29 durch
Drop
Ping der Werte beseitigt bei den Indizes 18 bis 26.quelle
Print
notwendig ist, aber wen interessiert das schon.\[LeftCeiling]
und\[RightCeiling]
wirklich als ein einzelnes Byte zählen :)Ceiling
Befehl.C (GCC) ,
62.55Bytes• 7 Bytes dank Jonathan Frech
f(n){for(n=0;++n-101;n/10-2&&n%10-2&&printf("%d,",n));}
Schleift von 1 bis 100 und druckt die Zahl nur, wenn 2 nicht an der Einsen- oder Zehnerstelle steht.
Probieren Sie es online!
quelle
Powershell, 19 Bytes
Dieses Skript zeigt stattdessen den Nullwert 'Zahlen mit 2 innen' und löst die Aufgabe 'Nummer 2 sollte nirgendwo in der Sequenz erscheinen' vollständig.
Ausgabe:
Powerhsell (Ausgabe enthält keine Nullwerte), 24 Byte
quelle
sh + coreutils, 16 Zeichen
Erzeugt eine Sequenz von 1 bis 100 (einschließlich) und löscht alle Zeilen, in denen '2' enthalten ist.
quelle
Z80Golf ,
4948 BytesProbieren Sie es online!
Versammlung:
Ein Byte mit dem
repeat_loop
Sprung gespeichertquelle
Python 3 ,
53 51 50 4946 BytesProbieren Sie es online!
Nicht die stärkste Sprache für diese Aufgabe, aber ich bin neu im Golfen.
Vielen Dank an die Kommentatoren für ihre Tipps!
quelle
if
.[print(n)for n in range(1,101)if"2"not in str(n)]
funktioniert.n=17;exec("print((n>177)*10+n//9);n+=10;"*81)
'2'in str(n)or print(n)
ist kürzer als ein Wächter des Verstehens.Tcl , 44 Bytes
Probieren Sie es online!
Tcl , 47 Bytes
Probieren Sie es online!
Tcl , 50 Bytes
Probieren Sie es online!
quelle
time {if [string f 2 [incr i]]==-1 {puts $i}} 100
- Outgolf fehlgeschlagen!regexp
:![regexp 2 [incr i]]
für -3 Bytes ersetzenKotlin , 32 Bytes
Probieren Sie es online!
quelle
Bash , 31 Bytes
Probieren Sie es online!
Dank Digital Trauma für die kurze Schleife.
quelle
echo $i
statt der printf? Oder noch besserprintf %d\\n {1..100}|grep -v 2
?echo {1..100}|tr ' ' \\n|grep -v 2
sed /2/d
anstelle von verwendengrep -v 2
.ORK , 1092 Bytes
Probieren Sie es online!
O Objekte R K ool. Die Ausgabe ist eine durch Leerzeichen getrennte Liste von Zahlen.
Dies übersetzt (ungefähr) in den folgenden Pseudocode:
Wie Sie sehen, wird alles mithilfe von Objekten ausgeführt, einschließlich grundlegender Mathematik- und E / A-Funktionen (über die integrierten Mathematik- und Schreibklassen). Nur ganze Funktionen können eine Schleife ausführen, was erklärt, dass für die Arbeit ein Objekt mit zwei Funktionen erforderlich ist.
quelle
MathGolf ,
76 BytesProbieren Sie es online!
Erläuterung
quelle
C (clang) , 56 Bytes
Probieren Sie es online!
quelle
PHP 7.1, 40 Bytes
druckt durch Unterstriche getrennte Zahlen. Laufen Sie mit
-nr
oder versuchen Sie es online .quelle
preg_filter()
Basis ist interessant. (Ich habe nie diese Funktion 🤫.) Dass man mit kürzer sein würdepreg_grep()
:<?=join(_,preg_grep("/2/",range(1,100),1));
.Rot , 44 Bytes
Probieren Sie es online!
Verwendet
unless
stattif not
, warum denn nicht? :)quelle
Brainfuck , 176 Bytes
Probieren Sie es online!
Kürzere ist definitiv möglich. Dies erzeugt die Zahlen
1,3,4,5,6,7,8,9
und0,1,3,4,5,6,7,8,9
. Zuerst gibt es jede Zahl in der ersten Liste aus, dann gibt es jede Kombination der ersten und zweiten Liste aus und druckt schließlich nur100
.Erläuterung:
quelle
SimpleTemplate , 51 Byte
Das war eine lustige Herausforderung! Und es ist eine Herausforderung, bei der meine Sprache gut kann.
Durchläuft alle Werte von 1 bis 100 und gibt diejenigen ohne 2 aus, die durch eine neue Zeile getrennt sind.
Sie können es unter http://sandbox.onlinephpfunctions.com/code/2c97a2b6954c29844f1079938da771d51e2e0d99 ausprobieren
Ungolfed:
Das
{@/}
wird zum Schließen des{@for ...}
und verwendet{@if ...}
, ist aber optional.Beim Kompilieren in PHP wird das erforderliche Schließen hinzugefügt.
Wenn Sie neugierig sind, ergibt der Golf-Code diesen PHP-Code:
Wo
$FN['array_flat']
ist außerhalb dieses Codes definiert.quelle