In dieser Herausforderung musst du 4 verschiedene Aufgaben mit demselben Zeichensatz lösen. Sie können die Zeichen neu anordnen, jedoch keine Zeichen hinzufügen oder entfernen.
Der Gewinner ist die Einsendung, die alle Aufgaben mit der geringsten Anzahl von Zeichen löst. Alle Aufgaben müssen in derselben Sprache gelöst werden.
Beachten Sie, dass dies die kleinste Anzahl von Zeichen ist, nicht die kleinste Anzahl von eindeutigen Zeichen.
Aufgabe 1:
Geben Sie die ersten N
Zahlen jeder dritten zusammengesetzten Zahl aus . Der Codeblock unten zeigt die ersten 19 zusammengesetzten Zahlen in der ersten Reihe und jede dritte zusammengesetzte Zahl in der darunter liegenden Reihe.
4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30
4, 9, 14, 18, 22, 26, 30
Wenn N=5
dann sollte der Ausgang sein 4, 9, 14, 18, 22
. Sie müssen unterstützen 1<=N<=50
.
Zusammengesetzte Zahlen sind positive Zahlen, die keine Primzahlen oder 1 sind.
Das Ergebnis für N=50
ist:
4, 9, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 57, 62, 65, 69, 74, 77, 81, 85, 88, 92, 95, 99, 104, 108, 112, 116, 119, 122, 125, 129, 133, 136, 141, 144, 147, 152, 155, 159, 162, 166, 170, 174, 177, 182, 185, 188, 192
Schritt 2:
Ausgabe einer N-by-N
Multiplikationstabelle. Sie müssen unterstützen1<=N<=20
Beispiel:
N = 4
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
Das Ausgabeformat ist optional, die folgende Ausgabe ist akzeptabel [[1,2,3,4],[2,4,6,8],[3,6,9,12],[4,8,12,16]]
.
Schritt 3:
Bestimmen Sie, ob eine Zahl eine Fibonacci-Zahl ist . Sie müssen positive N
Werte bis zur standardmäßigen Ganzzahlgrenze Ihrer Sprache unterstützen. Wenn es sowohl 32-Bit-Ganzzahlen als auch 64-Bit-Ganzzahlen gibt, können Sie diejenige verwenden, die den kürzesten Code erfordert. Verwenden Sie beispielsweise int
anstelle von, long int
wenn Sie die Wahl haben. Sie können keine kleineren Ganzzahlen als 32-Bit auswählen, es sei denn, dies ist die Standardeinstellung (Sie können keine 8-Bit-Ganzzahlen verwenden, wenn die Standardeinstellung 32-Bit ist).
true/false
, false/true
, 1/0
, 1/-1
, a/b
Sind alle akzeptabel ausgegeben, solange sie konsistent ist.
Schritt 4:
Nehmen Sie N
als Eingabe und Ausgabe das Ergebnis von 1^1+2^2+3^3+...N^N
. Sie müssen unterstützen 1<=N<=10
.
Die 10 verschiedenen Ergebnisse sind:
1, 5, 32, 288, 3413, 50069, 873612, 17650828, 405071317, 10405071317
Das ist Code-Golf , also gewinnt die kürzeste Einsendung in jeder Sprache!
Mit diesem Stack-Snippet können Sie Ihre Lösung überprüfen. Es misst die Mindestanzahl von Zeichen, die erforderlich sind, um alle vier Lösungen einzuschließen, und zeigt die verbleibenden Zeichen an.
quelle
Antworten:
Python,
8887 BytesHat nicht zu viel Mühe in das Teilen von Charakteren oder die Golfs selbst gesteckt, wird dies mit ziemlicher Sicherheit zu schlagen sein.
quelle
range(11*n)
immer genug Verbundwerkstoffe?5*n
ist ausreichend.Jelly ,
191817 ZeichenAufgabe 1
Probieren Sie es online!
Aufgabe 2
Probieren Sie es online!
Aufgabe 3
Probieren Sie es online!
Aufgabe 4
Probieren Sie es online!
Wie es funktioniert
Jede Zeile in einem Jelly-Programm definiert eine separate Verknüpfung (Funktion). Der letzte Link ist der Hauptlink und wird automatisch aufgerufen, wenn das Programm ausgeführt wird. Sofern dieser Hauptlink nicht irgendwie auf die anderen verweist, haben sie keine Auswirkung. Beachten Sie, dass selbst nicht aufgerufene Links möglicherweise keine Parserfehler enthalten.
Aufgabe 1
Aufgabe 2
Dies ist trivial:
×
ist das Multiplikationsatom, und das schnelleþ
(Tabelle) gilt×
für jede Kombination von Elementen im linken und im rechten Argument. Wenn es sich bei den Argumenten um Ganzzahlen handelt (die hier angegeben sind), werden sie auch in Range umgewandelt.Aufgabe 3
Aufgabe 4
quelle
ÆḞ
erweist sich bereits als nützlich!Mathematica, 60 Zeichen
Schritt 1: Verbundwerkstoffe
Aufgabe 2: Multiplikationstabelle
Schritt 3: Fibonacci
Schritt 4: Summe der Kräfte
Jede Übermittlung besteht aus einer Reihe von Ausdrücken, die ignoriert werden, gefolgt von einer unbenannten Funktion, die die angegebene Aufgabe implementiert.
Ich habe ein einfaches CJam-Skript geschrieben, das unformatierte Lösungen "optimal" kombiniert, indem ein Kommentar vorangestellt wird. Ich habe dann drei Bytes zusätzlich gespart, indem ich jeden Kommentar manuell entfernt habe (was einige Neuanordnungen erforderte, um jeweils eine gültige Syntax zu erhalten). Mit dem Skript war es viel einfacher, einfache Variationen der Lösungen auszuprobieren, um festzustellen, ob sie die Gesamtpunktzahl beeinträchtigen würden. Fühlen Sie sich frei, das Skript selbst zu verwenden.
quelle
ab
undba
als Skripte eingebe , gibt es mir(**)ab
und(**)ba
, anstelle vonab
undba
.(**)
selbst verwendet werden könnte, um einige Zeichen zu verdecken, wenn sie in einem der anderen Programme verwendet würden.MATL ,
292826 ZeichenAufgabe 1 (jede dritte zusammengesetzte Zahl)
Probieren Sie es online!
Aufgabe 2 (Multiplikationstabelle)
Probieren Sie es online!
Aufgabe 3 (Fibonacci-Detektor)
Dies zeigt
1
/0
für Fibonacci / Nicht-Fibonacci an.Probieren Sie es online!
Aufgabe 4 (Summe der Kräfte)
Probieren Sie es online!
Prüfen
Dieses Programm gibt die vier Zeichenfolgen ein und zeigt sie sortiert an, um visuell zu überprüfen, ob dieselben Zeichen verwendet werden.
Erklärungen
%
ist das Kommentarsymbol. Alles zu seiner Rechten wird ignoriert.Aufgabe 1 (jede dritte zusammengesetzte Zahl)
Aufgabe 2 (Multiplikationstabelle)
Aufgabe 3 (Fibonacci-Detektor)
Aufgabe 4 (Summe der Kräfte)
quelle
Hey MATL would be perfect for this!
mir die Herausforderung zum ersten Mal ansah, dachte ich, du hast mich geschlagen. +1Perl 6 , 61 Bytes
Der zweite kehrt zurück,
((1,2,3,4),(2,4,6,8),(3,6,9,12),(4,8,12,16))
wenn er gegeben ist4
Perl 6 hat nicht wirklich eine maximale Ganzzahl, aber die dritte arbeitet sofort mit einer Eingabe von
15156039800290547036315704478931467953361427680642
. Die einzigen begrenzenden Faktoren wären Gedächtnis und Zeit.Andernfalls werden sie alle "sofort" für Eingaben ausgeführt, die weit über das erforderliche Maß hinausgehen.
Probieren Sie es online aus
quelle
JavaScript (ES6),
101100959391 ByteBearbeiten: 1 Byte gespeichert,
0
da keine Fibonacci-Nummer unterstützt wird. 5 Bytes plus weitere 2 Bytes (1 dank @Arnauld) durch Umbenennen von Variablen gespeichert. 2 Bytes durch Umschalten zwischen+1
,++
und gespeichert+=1
.quelle
c
Variablen durchA
sollte ein Byte gespart werden.d
mity
, sondernd
ist in der aktuellen Version nicht definiert, so dass Sie wahrscheinlich , dass die ersten korrigieren mögen)a
zu speichernm
.MATL , 30 Zeichen
Der Zeichensatz, mit dem ich ging, ist:
Ich konnte die andere MATL-Antwort nicht übertreffen, aber ich hatte Spaß daran, diese Lösung zu finden.
Aufgabe 1:
Dritte zusammengesetzte Zahlen.
Probieren Sie es online!
Schritt 2:
Multiplikationstabelle. Aufgrund der Funktionsweise von MATL definitiv die einfachste Aufgabe
Probieren Sie es online!
Schritt 3:
Fibonacci-Tester. Gibt eine positive Ganzzahl (1 oder 2) für wahrheitsgemäße Eingaben und 0 für falsche Eingaben aus.
Probieren Sie es online!
Schritt 4:
Summe der Kräfte
Probieren Sie es online!
Ich werde später eine ausführlichere Erklärung veröffentlichen, aber im Moment sollten Sie beachten, dass dies
%
das Kommentarzeichen ist, daher sind die Programme wirklich:quelle
PowerShell ,
95 bis94 Byte( TimmyD schon wieder meinen Speck)
Aufgabe 1:
Probieren Sie es online!
Schritt 2:
Probieren Sie es online!
Schritt 3:
Probieren Sie es online!
Schritt 4:
Probieren Sie es online!
quelle
"$args"
statt$args[0]
ist brillant. Ich werde das von jetzt an benutzen.;
von Task 4 entfernen, indem Sie die Berechnung mit manipulieren("$args"..1|%{$s+="$_*"*$_+1|iex})-(-$s)
, um ein weiteres Gesamtbyte zu speichern.Haskell ,
7776 ZeichenProbieren Sie es online!
--
Beginnt ein Zeilenkommentar, so sind alle vier Programme von der Form<program>--<unused chars>
.Aufgabe 1:
Das längste Programm.
[x|x<-[1..],2/=sum[1|0<-mod x<$>[1..x]]]
ergibt eine unendliche Liste zusammengesetzter Zahlen plus einen Anfang,1
der die 0-Indizierung korrigiert. Verwendung:Schritt 2:
Verwendung:
Schritt 3:
Returns
[0]
für truthy und[]
für falsy. Verwendung:Schritt 4:
Verwendung:
quelle
05AB1E , 21 Bytes
Aufgabe 1
Probieren Sie es online!
Aufgabe 2
Probieren Sie es online!
Aufgabe 3
Probieren Sie es online!
Aufgabe 4
Probieren Sie es online!
Erklärungen
Bei allen Tasks wird das
q
Programm beendet, sodass der folgende Code niemals ausgeführt wird.Aufgabe 1
Dies ist das größte Byte-Schwein. Eine kleine Verbesserung hier könnte viel bewirken.
Aufgabe 2
Aufgabe 3
Aufgabe 4
quelle
Ruby,
83 82 8078 ZeichenHinweis: Der Fibonacci-Zahlendetektor verwendet die auf Wikipedia beschriebene Methode des perfekten Quadrats: https://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_numbers
quelle
'';
vs#