Ihr Chef hat Ihnen gerade eine Liste mit 12 Programmieraufgaben per E-Mail geschickt, die er so schnell wie möglich erledigen muss. Die Aufgaben sind einfach genug, aber Ihr Chef, ein junger Softwaremagnat, der von sozialen Netzwerken begeistert ist, besteht darauf, dass Ihre Lösungen in einen einzelnen Twitter- Tweet passen .
Das bedeutet, dass Sie nur Code im Wert von 140 Byte haben, um alle Aufgaben zu lösen, durchschnittlich 11,67 Byte pro Aufgabe. (Ja, Twitter zählt die Zeichen, aber Ihr Chef hat speziell die Bytes gesagt.)
Sie erkennen, dass es keine Möglichkeit gibt, alle 12 Aufgaben in 140 Byte zu lösen, aber Sie vermuten, dass Ihr Chef nicht alle Ihre Lösungen tatsächlich testet. Sie lösen so viele Aufgaben wie möglich und überspringen einige davon vollständig. Ihre Einstellung ist, dass es nicht darauf ankommt, welche Teilmenge der Aufgaben Sie erledigen, sondern nur darauf, dass die Teilmenge so groß wie möglich ist .
Wie viele Aufgaben kannst du erledigen?
Herausforderung
Schreiben Sie bis zu 12 verschiedene Programme, von denen jedes genau eine der 12 unten aufgeführten Aufgaben löst. Die kumulative Summe der Längen dieser Programme darf 140 Byte nicht überschreiten
Alternativ können Sie ein einzelnes Programm mit einer Länge von maximal 140 Byte schreiben, das eine Ganzzahl von 1 bis 12 benötigt und (idealerweise) mit der Lösung der entsprechenden Aufgabe fortfährt, wobei bei Bedarf weitere Eingaben erforderlich sind. Nicht alle Aufgaben müssen funktionieren, sondern nur diejenigen, die für Ihre Punktzahl zählen. Aufgaben, die nicht funktionieren, dürfen fehlerhaft sein oder etwas anderes tun.
In beiden Fällen kann ein "Programm" tatsächlich eine Funktion sein, die die Eingabe als Argumente verwendet oder dazu auffordert und die Ausgabe ausgibt oder zurückgibt. So könnten Sie beispielsweise eine 140-Byte-Funktion schreiben, die aussieht f(taskNumber, taskInput)
, oder Sie könnten separate Codeausschnitte für jede Aufgabe schreiben, einige als Funktionen und andere als vollwertige Programme.
Andere Details:
Der gesamte Code muss in derselben Sprache geschrieben sein.
Wie üblich sollte die Eingabe von stdin, der Befehlszeile, einem Funktionsargument oder was auch immer für Ihre Sprache üblich ist, kommen. Die Ausgabe wird auf stdout oder die nächstgelegene Alternative Ihrer Sprache gedruckt oder in einem geeigneten Typ zurückgegeben.
Ein angemessenes Maß an Eingabeformatierung ist in Ordnung. zB Anführungszeichen um Zeichenfolgen oder
\n
anstelle von tatsächlichen Zeilenumbrüchen.Die Ausgabe sollte genau das sein, was erforderlich ist, ohne überflüssige Formatierungen oder Leerzeichen. Die Ausnahme ist eine optionale einfache nachgestellte Zeile.
Code, der nur in einer REPL- Umgebung ausgeführt wird, ist kein Programm oder keine Funktion.
Sie dürfen nicht mehrere Programme schreiben, die mehrere Aufgaben lösen. Es ist entweder ein Programm, das (idealerweise) alle Aufgaben löst, oder (idealerweise) 12 Programme, die jeweils eine einzelne Aufgabe lösen.
Das Posten einer Aufgabenlösung, die Sie nicht oder nur geringfügig geändert haben, ist nicht gestattet, ohne dass der ursprüngliche Autor angegeben wurde, und im Idealfall auch, um Erlaubnis zu erhalten. Wenn Ihre Antwort in erster Linie die kürzesten Lösungen aus allen anderen Antworten zusammensetzt, sollte es sich um ein Community-Wiki handeln.
Wertung
Der Beitrag, der die meisten Aufgaben erledigt, ist der Gewinner. Stimmen zwei Einsendungen überein, gewinnt der mit den wenigsten Bytes. Wenn die Anzahl der Bytes gleich ist, gewinnt die frühere Übermittlung. Community-Wiki-Antworten dürfen nicht gewinnen.
Teilen Sie uns unbedingt mit, welche Aufgaben Sie gelöst haben, nicht nur wie viele!
Handicap für Nichtgolfer:
Es ist wahrscheinlich, dass diese Herausforderung von Golfsprachen dominiert wird . Viele Sprachen haben möglicherweise Probleme, auch nur eine oder zwei Aufgaben innerhalb von 140 Byte zu lösen. Aus diesem Grund können Sie eine nicht konkurrierende Antwort einreichen , wenn das Limit 3 Tweets, dh 420 Bytes, beträgt. Alle anderen Regeln bleiben gleich.
Aufgaben
Aufgabe 1 - Können drei Zahlen ein Dreieck bilden?
Nehmen Sie drei positive ganze Zahlen auf und geben Sie einen Wahrheits- / Falschwert aus , der angibt, ob drei Linien mit diesen Längen ein Dreieck bilden könnten oder nicht . Sie können nicht davon ausgehen, dass die Nummern in einer bestimmten Reihenfolge vorliegen.
Wahrheitsbeispiele (eines pro Zeile):
20 82 63
1 1 1
2 3 4
1 2 2
Falsche Beispiele:
6 4 10
171 5 4
1 1 2
1 2 3
Aufgabe 2 - Einer Million am nächsten
Ordnen Sie sie bei einer Zeichenfolge mit genau 7 Dezimalstellen (0-9) neu an, um eine Zahl zu erhalten, die einer Million möglichst nahe kommt. Das heißt, abs(1000000 - rearrangedNumber)
sollte minimiert werden.
Geben Sie die resultierende Zahl als Ganzzahl und nicht als Zeichenfolge aus oder geben Sie sie zurück (es sollten also keine führenden Nullen vorhanden sein, es sei denn, dies ist die Norm für Ihre Sprache).
zB sollte eine Eingabe von 9034318
zu 984331
(und nicht 1033489
) führen.
2893984
sollte werden 2348899
.
0001000
sollte werden 1000000
.
0000020
sollte werden 200000
.
Aufgabe 3 - Einfacher Tastatursimulator
Nehmen Sie eine Reihe von Kleinbuchstaben (az), Leerzeichen und spitzen Klammern auf <>
. Von links nach rechts gelesen, stellt diese Zeichenfolge die Tasten dar, die auf einer Standardtastatur gedrückt wurden, während ein ursprünglich leerer Texteditor geöffnet war. Die Buchstaben und Leerzeichen entsprechen den normalen Tasten, <
entsprechen jedoch den Pfeiltasten nach links und >
nach rechts, die beide den Cursor bewegen, wenn sie gedrückt werden.
<
Bewegt den Cursor um ein Zeichen nach links oder tut nichts, wenn sich der Cursor am Anfang der Zeichenfolge befindet.
>
Bewegt den Cursor um ein Zeichen nach rechts oder tut nichts, wenn sich der Cursor am Ende der Zeichenfolge befindet.
Geben Sie die Zeichenfolge aus, die sich im Texteditor befinden würde, wenn alle Tasten in der Eingabezeichenfolge gedrückt wurden. Die Ausgabe von Escape-Codes zum Bewegen des Cursors ist nicht zulässig.
In der Eingabe ist immer mindestens ein Zeichen enthalten, das keine Pfeiltaste ist.
zB sollte der Input ui<<q>>ck <<<<<<the<<<<>>> >>>>>>>>brown x<o<f
nachgeben the quick brown fox
.
op<<l>>t<<<lam>>>>>>imi<<<><>>>zer<<<<<<<<<<<<<<<<<<>>><>m
sollte geben llammoptimizer
.
e< <c<b<a
sollte geben abc e
.
<<<>><><<><toast>><<>><><<>><
sollte geben toast
.
Aufgabe 4 - Briefe filtern
In vielen Schriftarten, 6 der Groß englischen Alphabet Buchstaben bestehen vollständig aus horizontalen und vertikalen Linien: E
, F
, H
, I
, L
, und T
. Wir werden diese die FILTHE-Buchstaben nennen.
Nehmen Sie eine Folge von Großbuchstaben (AZ) und zählen Sie die Anzahl der Zeilen in den FILTHE-Buchstaben, wobei Sie die resultierende Ganzzahl ausgeben.
E
, F
, H
, I
, L
, Und T
hat 4, 3, 3, 3, 2 und 2 Zeilen auf.
zB GEOBITS
hat 4 + 3 + 2 = 9 Zeilen einen Teil der FILTHE-Buchstaben (für .E..IT.
), so sollte die Ausgabe sein 9
.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
sollte ausgeben 17
.
ABCDGJKMNOPQRSUVWXYZ
sollte ausgeben 0
.
FILTHYLINESINLETTERS
sollte ausgeben 39
.
Aufgabe 5 - Alex Recursive A.
Unser Moderator Alex A. hat eine ziemlich mysteriöse Initiale "A".
Jetzt bin ich mir nicht sicher, aber ich denke das A.
steht für .A xelA
. Und ich bin mir auch ziemlich sicher, dass das .A
da schleichend für steht Alex A.
.
Um also Alex 'vollen Namen zu erhalten, müssen wir das A.
' s und .A
's erweitern:
Alex A. -> Alex [A.] -> Alex [.A xelA] -> Alex .A xelA -> Alex [.A] xelA -> Alex [Alex A.] xelA -> Alex Alex A. xelA -> etc.
Lassen Sie Ihr Programm eine nicht negative Ganzzahl aufnehmen und Alex A.
diese so oft erweitern, bis die resultierende Zeichenfolge ausgegeben wird.
So
0
wird Alex A.
,
1
wird Alex .A xelA
,
2
wird Alex Alex A. xelA
,
3
wird Alex Alex .A xelA xelA
,
4
wird Alex Alex Alex A. xelA xelA
,
5
wird Alex Alex Alex .A xelA xelA xelA
,
und so weiter.
(Ich habe das gemacht, weil ich mich schlecht gefühlt habe, weil ich Alex versehentlich aus meiner Mod Tribute Challenge ausgeschlossen habe .: P)
Aufgabe 6 - Numpad-Rotation
Geben Sie eine ganze Zahl von 1 bis einschließlich 9 ein (Sie können sie auch als Zeichenfolge verwenden). Geben Sie das 3 × 3-stellige Quadrat aus
789
456
123
in 90 ° -Schritten gedreht, so dass die eingegebene Ziffer an einer beliebigen Stelle in der oberen Reihe erscheint. Wenn 5
eingegeben wird, ist jede Drehung eine gültige Ausgabe, da sie 5
nicht nach oben gedreht werden kann.
zB wenn 3
eingegeben wird, beides
963
852
741
und
321
654
987
sind gültige Ausgaben.
4
Nur zur Eingabe
147
258
369
ist gültige Ausgabe.
Aufgabe 7 - Aufteilen von Ziffern in Zehner
Nehmen Sie eine nicht leere Folge von Dezimalstellen (0-9) und geben Sie einen Wahrheitswert aus, wenn diese in zusammenhängende Abschnitte unterteilt werden kann, wobei alle Stellen in jedem Abschnitt genau 10 ergeben. Wenn dies nicht möglich ist, geben Sie einen falschen Wert aus.
zB 19306128
können 19|3061|28
die Abschnitte wie folgt aufgeteilt werden: Alle werden zu 10 summiert (1 + 9, 3 + 0 + 6 + 1, 2 + 8), daher sollte ein wahrer Wert ausgegeben werden.
Wahrheitsbeispiele (eines pro Zeile):
19306128
073
730
0028115111043021333109010
2222255
Falsche Beispiele:
6810410
9218
12341
5222225
000
Aufgabe 8 - Quadratische Uhr
Nehmen Sie eine gleich große mehrzeilige Saite auf.
Ausgabe, 12
wenn die Eingabe ist
_ _
| | |
|_ _|
Ausgabe, 3
wenn die Eingabe ist
_ _
| |_|
|_ _|
Ausgabe, 6
wenn die Eingabe ist
_ _
| | |
|_|_|
Ausgabe, 9
wenn die Eingabe ist
_ _
|_| |
|_ _|
Es gibt keine anderen Eingabefälle.
Schritt 9 - Halterung Art.-Nr.
Nehmen Sie in einem 4 - Byte - String eine von jedem der linken Klammern enthält (
, [
, {
, und <
in beliebiger Reihenfolge.
Fügen Sie die entsprechenden rechten Klammern hinzu, damit die Zeichenfolge 8 Byte lang ist und eine vertikale Symmetrielinie aufweist. zB [<({
wird [<({})>]
.
Kehren Sie dann jede Klammer in dieser Zeichenfolge um. zB [<({})>]
wird ]>)}{(<[
.
Geben Sie die ursprüngliche 8-Byte-Klammer mit der umgekehrten Version oben und unten in separaten Zeilen aus.
Die endgültige Ausgabe für die Eingabe [<({
wäre also
]>)}{(<[
[<({})>]
]>)}{(<[
Ebenso sollte die Ausgabe für <({[
sein
>)}][{(<
<({[]})>
>)}][{(<
Die Eingabe (<<[
ist ungültig, da die {
fehlt und es ein Extra gibt <
.
Aufgabe 10 - Perimiterize
Nehmen Sie ein rechteckiges Textraster (mindestens 1 × 1) auf .
, das aus leeren Feldern und X
durchgezogenen Feldern besteht. Zellen außerhalb der Gittergrenzen werden als leer betrachtet. Sie können davon ausgehen, dass jede der 4 Gitterkantenzeilen und -spalten mindestens eine enthält X
.
zB eine gültige Eingabe könnte sein:
XXX.....X.....
X..X...X.X....
XXX.....X....X
Geben Sie ein weiteres rechteckiges Textgitter aus, in dem jede leere Zelle, die X
orthogonal oder diagonal benachbart ist , einschließlich derjenigen außerhalb des Eingabegitters , zu wird o
. Im Wesentlichen wird ein Perimiter von o
's um alle Teile von Volltonkacheln gezogen. Das neue Gitter sollte nicht größer sein als es sein muss.
Die Ausgabe des obigen Beispiels wäre also:
ooooo...ooo.....
oXXXoo.ooXoo....
oXooXo.oXoXo.ooo
oXXXoo.ooXoo.oXo
ooooo...ooo..ooo
Ebenso sollte die Ausgabe der Eingabe XXX..X.X
sein
oooooooooo
oXXXooXoXo
oooooooooo
und ausgeben
oooooooooo.
oXXXooXoXo.
oooooooooo.
wäre ungültig, da die leere Spalte ganz rechts nicht erforderlich ist.
Sie können alle 3 verschiedene verwenden druckbaren ASCII - Zeichen anstelle von .
, X
, und o
.
Aufgabe 11 - Sator Square
Ausgabe des Satorquadrats :
SATOR
AREPO
TENET
OPERA
ROTAS
Jeder der Buchstaben kann in Klein- oder Großbuchstaben geschrieben werden
SatOR
aRePO
tenet
OPERa
RoTaS
ist auch eine gültige Ausgabe.
Es erfolgt keine Eingabe.
Aufgabe 12 - Prime Tweet
Nehmen Sie keine Eingabe vor, sondern geben Sie eine druckbare 140-Byte- ASCII- Zeichenfolge aus, die mindestens eines der 95 druckbaren ASCII-Zeichen enthält. (45 Zeichen werden also dupliziert.)
Die Summe der Zeichencodes aller 140 Bytes in dieser Zeichenfolge muss eine Sophie Germain-Primzahl sein , dh eine Primzahl p
, 2p+1
die auch eine Primzahl ist. Der Zeichencode für Leerzeichen ist 32, 33 für !
, 34 für "
und so weiter bis zu 126 für ~
. Die Summe könnte in Python als berechnet werden sum(map(ord, myString))
.
Eine Beispielausgabe ist:
! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d
Die Zeichencodesumme ist die Primzahl 12203, deren entsprechende sichere Primzahl 24407 ist.
quelle
import
s zählen? Angenommen, ich schreibe 5 Funktionen, von denen 2 dasselbe Modul benötigen (z. B.import Math
). Wird dies zweimal gezählt?Antworten:
Pyth, 9 Aufgaben in 136 Bytes
Aufgabe 1: 7 Bytes
Demonstration
In absteigender Reihenfolge sortieren (
_SQ
), Subtraktion darüber falten (a-b-c
), prüfen, ob das Ergebnis negativ ist.Aufgabe 2: 14 Bytes
Demonstration
Bilden Sie alle Zeichenfolgenpermutationen (
.pz
) und sortieren Sie sie (o
) basierend auf dem absoluten Wert der Differenz (.a-
) zwischen der Zahl (sN
) und einer Million (^T6
).Nehmen Sie den ersten solchen String (
h
) und konvertieren Sie ihn in eine Zahl. (s
).Aufgabe 4: 19 Bytes
Demonstration
Replizieren Sie
"EFHILT"
dreimal (*3
), entfernen Sie das nachfolgendeLT
(PP
) und fügen Sie einE
(+\E
) hinzu. Ordnen Sie jeden Buchstaben in der Eingabe der Anzahl seiner Erscheinungsbilder in dieser Zeichenfolge zu. (/L ... z
). Summe. (s
).Aufgabe 5: 16 Bytes
Demonstration
Beginnen Sie mit
"A."
, kehren Sie um und fügen Sie ein hinzu, und geben Sie"Alex "
+ 1-mal ein.Aufgabe 7: 13 Bytes
Konvertieren Sie die Eingabezeichenfolge in eine Liste mit 1-stelligen Zahlen (
sMz
). Bilden Sie alle Partitionen (./
). Summiere jedes Element jeder Partition (sMM
). Entfernen Sie alle 10er aus jeder Unterliste (-RT
). Überprüfen Sie, ob dadurch eine der Unterlisten geleert wurde, indem Sie prüfen, ob die leere Liste in der Gesamtliste enthalten ist (}Y
).Aufgabe 8: 11 Bytes
Demonstration
Modulo Magie. Wandle in Zahl (
CQ
) um, nimm Mod 199 (C\Ç
= 199) und nimm diesen Mod 4. Addiere dann 1 und multipliziere mit 3.Schritt 9: 21 Bytes
Demonstration
Zuerst generieren wir die erste Zeile, die aus der Eingabe besteht, die in die Spiegelzeichen (
Xz"<{[()]}>")
) übersetzt wurde, gefolgt von der umgekehrten Eingabe (+ ... _z
), und speichern sie inJ
. Drucken Sie dann diese Zeile, ihre Rückseite und diese Zeile erneut aus (J_JJ
).Aufgabe 11: 22 Bytes
Demonstration
Drucken Sie einfach eine Zeichenfolge und ihre Umkehrung aus, aber duplizieren Sie nicht die Mitte
N
.Aufgabe 12: 13 Bytes
Demonstration
Am Ende des Codes befindet sich ein invisble
DEL
(7F
) -Zeichen.Dies wird gedruckt
das hat Zeichensumme
11321
. Es besteht ausG
dem Alphabet, 193
s und allen druckbaren ASCII-Zeichen.quelle
CJam,
89 Aufgaben in 140 BytesHier ist zunächst ein Skript, mit dem Sie Ihre Lösungen sortieren und Ihnen mitteilen können, welche in den Tweet passen:
Fügen Sie einfach Ihre 12 Lösungen in die Eingabe ein, eine in jeder Zeile. Führen Sie es hier aus. Die erste Spalte ist die Aufgabennummer, die zweite die Größe (in Zeichen - Sie müssen dies selbst korrigieren, wenn sich dies von der Byteanzahl unterscheidet), die dritte die kumulative Größe. Die Programme, die in den Tweet passen, sind durch eine Zeile von getrennt
===
.Für mich sieht die Ausgabe so aus:
Hier sind also die Aufgaben, die ich derzeit in den Tweet einbauen kann.
Aufgabe 1 - Können drei Zahlen ein Dreieck bilden? -
87 BytesDanke an jimmy23013 für das Speichern von 1 Byte.
Testsuite.
Es wird erwartet, dass die Eingabe eine CJam-artige Liste ist.
Dies ist ziemlich einfach: Prüfen Sie, ob die größte Seite kürzer ist als die Summe der beiden anderen. Oder stellen Sie gleichermaßen sicher, dass die kürzeste Seite länger ist als die Differenz der beiden anderen:
Aufgabe 2 - Am nächsten an einer Million - 15 Bytes
Testsuite.
Einfache rohe Gewalt:
Aufgabe 4 - FILTHE Letters -
2119 BytesDanke an jimmy23013 für das Speichern von 2 Bytes.
Testsuite.
Die Idee ist, eine Zeichenfolge zu erstellen, die jeden der FILTHE-Buchstaben einmal für jede ihrer orthogonalen Linien enthält. Dies geschieht über eine lustige String-Manipulation:
Aufgabe 5 - Alex Recursive A. -
2720 BytesTestsuite.
Das Implementieren der Substitution von
A.
und.A
direkt ist viel zu teuer. Stattdessen stellen wir fest, dass wir nur einen Fall behandeln müssen, wenn wir die Zeichenfolge jedes Mal umkehren. Darüber hinaus entspricht das VoranstellenAlex
(und jedes Leerzeichen) dem Erweitern der Initiale. Wir können ein weiteres Byte speichern, indem wir die Umkehrung anfügen, bevor wir die Zeichenfolge umkehren:Aufgabe 7 - Aufteilen von Ziffern in Zehner -
181613 BytesTestsuite. (Mit Klammern um jeden Ausgang.)
Nicht gerade benutzerfreundlich: Der Wahrheitswert ist eine einzelne neue Zeile, der falsche Wert ist die leere Zeichenfolge.
Die Grundidee ist einfach: Addiere die Ziffern zu einer laufenden Summe, die wir zurücksetzen, wenn sie genau 10 ergibt. Die Summe muss am Ende der Eingabe Null sein. Zunächst stellt sich heraus, dass es kürzer ist als die Summe bei 10, und subtrahiert die Ziffern, wobei die Summe zurückgesetzt wird, wenn wir 0 drücken. Wir müssen jedoch sicherstellen, dass wir nichts Wahres zurückgeben, wenn die Eingabe nur Nullen enthält. Der kürzeste Weg, den ich gefunden habe, bestand darin, die Summe auf das Zeichen mit dem Codepunkt 10 (den Zeilenvorschub) zurückzusetzen und dann am Ende zu überprüfen, ob das Zeichen tatsächlich auf dem Stapel und nicht auf der Zahl 10 liegt. weil sowohl die ganze Zahl Null als auch das Zeichen Null (das Null-Byte) falsch sind:
Aufgabe 8 - Quadratische Uhr - 10 Bytes
Testsuite.
Dies ist nur eine ziemlich zufällige Modulo-Magie für die Zeichencodes, die zufällig auf die richtigen Werte gehasht werden. Ich bin ziemlich davon überzeugt, dass etwas kürzeres möglich ist, aber es ist das kürzeste, das ich (programmatisch) für diese Art von Struktur gefunden habe:
Task 9 - Bracket Art -
2322 BytesVielen Dank an Sp3000 für das Speichern von 1 Byte.
Testsuite.
Ziemliech direkt. Die Zuordnung zwischen der linken und der rechten Klammer erfolgt durch Hinzufügen von 2 (oder 1 für Klammern):
Aufgabe 11 - Sator Square - 22 Bytes
Teste es hier.
Wahrscheinlich die langweiligste Lösung von allen. Es drückt die erste Hälfte der Zeichenkette und kehrt sie dann um:
Aufgabe 12 - Prime Tweet -
1312 BytesTeste es hier. (Mit Diagnoseausgabe für das Ergebnis.)
Danach
'
gibt es den nicht druckbaren<DEL>
(0x7F), den SE ausstreift . Verwenden Sie zum Kopieren und Einfügen stattdessen diese Version:Die gedruckte Zeichenfolge ist
Das heißt, es enthält einen Durchlauf aller Zeichen, gefolgt von einem weiteren Durchlauf von
S
bis~
, gefolgt von einem einzelnend
. Die Summe der Zeichencodes ist 12203. Ich habe dies durch ein bisschen Versuch und Irrtum herausgefunden.quelle
q~$~\->
q"FIHEELT"3*H<fe=:+
.e=
diese Tage haben.Pyth, 9 Aufgaben in 138 Bytes
Das hat eine ganze Weile gedauert.
Ich denke, 9 Aufgaben sind die Grenze für Pyth. Einschließlich des nächstkürzeren Programms (Sator Square) ergeben sich 160 Bytes. Das Golfen von 20 Bytes ist ziemlich unwahrscheinlich. Es gibt 2 oder 3 Aufgaben, die ein bisschen hässlich sind und möglicherweise gekürzt werden können, aber insgesamt bin ich mit den Lösungen sehr zufrieden.
Aufgabe 1 - Können drei Zahlen ein Dreieck bilden ?, 8 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 2 - Am nächsten an einer Million, 14 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 4 - FILTHE Buchstaben, 20 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 5 - Alex Recursive A., 16 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 6 - Numpad-Drehung, 20 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 7 - Aufteilen von Ziffern in Zehner, 15 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 8 - Quadratische Uhr, 12 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 9 - Bracket Art, 20 Bytes
Probieren Sie es online aus: Regular Input oder Test Suite
Aufgabe 12 - Prime Tweet, 13 Bytes
Probieren Sie es online aus: Regelmäßige Eingabe
quelle
TI-BASIC,
1112 Aufgaben in728830 BytesAufgabe 1 in 7 Bytes
Eingabe ist eine Liste in
Ans
.Aufgabe 2 in
92110 BytesFordert zurEingabe einerZiffernliste aufEingabe ist eine Zeichenfolge inAns
.Aufgabe 3 in 119 Bytes
Fordert zur Eingabe einer Zeichenfolge auf. Angenommen, C und L sind entweder undefiniert oder 0.
Aufgabe 4 in 35 Bytes
Eingabe ist ein String in
Ans
.Aufgabe 5 in 63 Bytes
Eingabe ist eine Zahl in
Ans
.Aufgabe 6 in 66 Bytes
: 𝑖 ^ ((Ans
<
7) (Ans-3 (Ans>
3: Für (Y, ⁻1,1: Disp sum (seq ((5-real (AnsX + Ans𝑖Y) -3imag (AnsX + Ans𝑖Y))) ₁₀ ^ ( X + 1), X, ~ 1,1: EndeEingabe ist eine Zahl in
Ans
.Aufgabe 7 in
3643 BytesFordert zur Eingabe einer
Liste mit Ziffern auf.Task 8 in 29 Bytes
Eingabe ist ein String in
Ans
.Aufgabe 9 in 83 Bytes
Eingabe ist ein String in
Ans
.Aufgabe 10 in 159 Bytes
Verwendet
X0.
statt.Xo
jeweils (sorry nichts passt). Fordert zur zeilenweisen Eingabe auf. Sie müssen zwei Zeilen von eingebenX
s , um die gesamte Ausgabe zu sehen, und dann 2nd + Quit, um die Ausgabe zu beenden.Aufgabe 11 in 39 Bytes
Task 12 in 77 Bytes
: Ans + "tvm_I% LinReg (ax + b) DS
<
(getKeyconj (1-PropZTest (dayOfWk (Manuelle Anpassung C / YANOVA (* row (HorizRegEQUnarchive [J]! # $&
'', .234567890:; =>
? @GBQX\
^ _`qw {|} ~Oder als Hex:
Die Eingabe ist eine Zeichenfolge, die
"
in enthältAns
.Dies ist in TI-BASIC eigentlich unmöglich. Es ist möglich, ein Basisprogramm hexadezimal zu bearbeiten und bestimmte 2-Byte-Token zu verwenden, um alle druckbaren ASCII-Zeichen in den Quellcode zu bekommen, aber das ist nicht das Problem. Das Problem ist, dass es keine Möglichkeit gibt, ein"
Zeichen in einer Zeichenfolge in pure basic auf einem sauberen Rechner ohne Programmeingabe zu speichern (dasselbe gilt für das→
Zeichen, aber das ist kein druckbarer ASCII-Code). Es ist jedoch möglich,"
eine Gleichung außerhalb von basic zu erstellen. Anschließend können Sie basic verwenden, um die Gleichung in eine Zeichenfolge zu konvertieren und diese Zeichenfolge anzuzeigen. Darüber hinaus ist auf dem Bildschirm ohnehin nur Platz für 128 Zeichen.quelle
Perl, 4 Aufgaben in 117 Bytes
Lass uns eine echte Sprache ausprobieren ;)
Noch nicht aufgegeben, kann möglicherweise sogar 5 Tasks in 140 Byte komprimieren, obwohl dies unwahrscheinlich ist!
* Aufgabe 1: 30 + 1 = 31 Bytes
Verwendungszweck:
perl -aM5.010 entry.pl input.txt
* Aufgabe 4: 32 + 1 = 33 Bytes
Verwendungszweck:
perl -p entry.pl input.txt
Aufgabe 5: 54 Bytes
-2b danke an Dom Hastings
Verwendungszweck:
echo 4 | perl -M5.010 entry.pl
Aufgabe 7: 37 + 2 = 39 Bytes
Verwendungszweck:
perl -pF entry.pl input.txt
* Aufgabe 8: 21 + 2 = 23 Bytes
Das ist ein bisschen knifflig. Angefangen von jedem Ersetzen
|
mitx
und jeder_
mity
dann ersetzt Räumen eine eindeutige zwei Ziffernfolge für jedes Raster zu erzeugen (yyxxyxxyyx
,yyxxyxxyyxyyxxxxyxyx
,yyxxxxyxyxyyxyxxxyyx
,yyxyxxxyyxyyxxxxyyx
,yyxxxxyyx
). Als nächstes habe ich ein Programm geschrieben, um Werte fürx
undy
und mathematische Operationen zu erzwingen, die mit den nach dem Ersetzen erzeugten Zahlen durchgeführt werden können,x
undy
für jede Zahl eine Ausgabe von 3,6,9,12 zu erhalten. Am Endex=1
,y=4
und war die magische Operation/64%14
.Verwendungszweck:
perl -0p entry.pl input.txt
Aufgabe 11: 34 Bytes
Verwendungszweck:
perl -M5.010 entry.pl
* Aufgabe 12: 30 Bytes
Verwendungszweck:
perl -M5.010 entry.pl
Haftungsausschluss:
-M5.010
gilt als "kostenlos"quelle
qw(A. .A)[$_%2]
anstatt("A.",".A")[$_%2]
in Aufgabe 5, und ich bin sicher, Sie können noch ein paar Bytes aus bekommen ...Ruby, 4 Aufgaben in 280 Bytes (nicht wettbewerbsfähig)
Dies ist nur ein Versuch, ich werde später weitere Aufgaben ausführen (und hoffentlich die vorhandenen Golf spielen).
Aufgabe 1
Aufgabe 2
Aufgabe 4
Aufgabe 5
quelle
TI-BASIC, 12 Aufgaben in 994 Bytes
Alles als TI-Gruppendatei herunterladen ( .8xg )
(Spoiler-Tags auf Anfrage hinzugefügt.)
Aufgabe 1 - Können drei Zahlen ein Dreieck bilden? - 7 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 2 - Am nächsten an einer Million - 114 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 3 - Einfacher Tastatursimulator -
131127 BytesAls TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 4 - FILTHE Letters - 34 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 5 - Alex Recursive A. - 107 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Task 6 - Numpad-Drehung - 86 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 7 - Aufteilen von Ziffern in Zehner - 77 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 8 - Quadratische Uhr - 35 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Task 9 - Bracket Art - 86 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Task 10 - Perimiterize - 218 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Diese Ersetzungen wurden vorgenommen:
0
=.
,1
=X
,2
=o
Geben Sie für die Eingabe (nachdem das Programm gestartet wurde) jeweils eine Zeile ein und drücken Sie bei jedem Zeilenumbruch die Eingabetaste, bis die letzte Zeile ausgeschrieben ist. Drücken Sie dann die Eingabetaste, geben Sie einen Punkt ein und drücken Sie erneut die Eingabetaste, um die gesamte Zeichenfolge zu übermitteln.
Aufgabe 11 - Sator Square - 38 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Aufgabe 12 - Prime Tweet - 151 Bytes
Als TI-83 + -Programmdatei herunterladen ( .8xp )
Ans
sollte ein doppeltes Anführungszeichen enthalten, das ausgeführt wird, indem eines direkt\Y1\
vom Gleichungseditor aus eingegeben undEqu►String(\Y1\,Str1:Str1
vom Startbildschirm aus ausgeführt wird.Die Ausgabelänge beträgt 140. 8 wird zweimal angezeigt, und 45 Leerzeichen sowie die anderen ASCII-Zeichen werden jeweils einmal angezeigt. Dies ergibt (33 + 34 + ... + 126) + 56 + 32 × 45 = 8969, eine Sophie-Germain-Primzahl.
quelle
sin(
wie Anzeigens
,i
,n
, und(
in Aufgabe 12Python 3, 1 Task, 268 Bytes, nicht wettbewerbsfähig
Ich habe Task # 2 in Python 3.5.2 ausprobiert. Ich bin neu im Codieren von Golf und Python
quelle
x=10;print(x)
Dies würde einigen Ihrer eingerückten Abschnitte helfen.