Sie müssen eine Sprache verwenden, um Programme zu schreiben, die die folgenden neun Aufgaben in beliebiger Reihenfolge ausführen .
- Wandle eine eingegebene Zahl von Basis 10 in Basis 36 um.
- Beispieleingabe:
1000
- Beispielausgabe:
RS
(Ausgabe muss in Großbuchstaben erfolgen)
- Beispieleingabe:
- Konvertieren Sie jedes Zeichen in einer Zeichenfolge in die 10 dezimalen ASCII-Basiscodes und drucken Sie die zusammengesetzten Codes aus.
- Beispieleingabe:
Scrambled 3GG5
- Beispielausgabe:
839911497109981081011002051717153
- Beispieleingabe:
- Bestimmen Sie, ob eine eingegebene Zahl durch 1738 teilbar ist.
- Geben Sie einen Wahrheitswert zurück, wenn dies der Fall ist, und einen falschen Wert, wenn dies nicht der Fall ist.
- Bestimmen Sie, ob eine Zeichenfolge den Buchstaben enthält
q
.- Gibt einen Wahrheitswert zurück, wenn dies der Fall ist, und einen falschen Wert, wenn dies nicht der Fall ist.
- Kodieren Sie eine eingegebene Buchstabenfolge mit einer Caesar-Chiffre von +1.
- Koffer muss aufbewahrt werden. Nichtbuchstaben werden ohne Änderung gedruckt.
- Beispieleingabe:
Good morning, World!
- Beispielausgabe:
Hppe npsojoh, Xpsme!
- Finde und drucke die Summe der Primfaktoren einer Zahl.
- Beispieleingabe:
1320
- Beispielausgabe:
21
- Beispieleingabe:
- Drucken
PPCG
. - Geben Sie die ersten
n
positiven Ganzzahlen aus, die durch teilbar sindfloor(sqrt(n))
.n
ist eine eingegebene Ganzzahl.
- Ersetzen Sie alle
o
undO
in einer eingegebenen Zeichenfolge durchಠ
.- Beispieleingabe:
Onomatopoeia
- Beispielausgabe:
ಠnಠmatಠpಠeia
- Beispieleingabe:
Sie werden bemerkt haben, dass diese Herausforderung Code Billiards
nicht ist Code Golf
. Das Ziel dieser Herausforderung ist, wie beim Billard, Ihren Code so einzurichten, dass er für die nächste Herausforderung nur geringfügig geändert werden kann. Aus diesem Grund müssen Ihre Programme die oben genannten Aufgaben nicht in der richtigen Reihenfolge lösen.
Ihre Punktzahl wird wie folgt bestimmt
- Ihre Punktzahl steigt um
1
jedes Byte in Ihren Programmen. - Ihre Punktzahl steigt,
floor(n^(1.5))
wenn zwei aufeinanderfolgende Programme eine Levenshtein-Distanz von habenn
. Wenn zum Beispiel Ihr erstes Programmpotato
und Ihr zweites Programm isttaters
, erhöht sich Ihre Punktzahl um 12 für 12 Bytes und um11
=floor(5^(1.5))
für einen Levenshtein-Abstand von 5.
Das Ziel dieser Herausforderung ist es, nach dem Schreiben aller neun Programme eine möglichst niedrige Punktzahl zu erzielen. Es gelten die Standard-CG-Regeln.
Um die Bestenliste anzuzeigen, klicken Sie auf "Code-Snippet anzeigen", scrollen Sie nach unten und klicken Sie auf "► Code-Snippet ausführen". Snippet erstellt von Optimizer.
quelle
ಠ
unda
? Ist es 1 (Zählenಠ
als 1 char) oder 2 (weilಠ
tatsächlich 2 Bytes)?Antworten:
Japt ,
886866766725688669Aufgabe 5 und 6 sind Killer. Vielleicht gibt es kürzere Wege, um sie zu erledigen. Ich denke, die Levenshtein-Distanzen könnten auch noch reduziert werden.
!(U%#ۊ
7 Bytes (arabisches Zeichen bringt die Ausrichtung durcheinander)
U!=Uk'q
7 Bytes, dist 11Us36 u
6 Bytes, dist 14UmX=>Xc
7 Bytes, Abstand 14"PPCG"
6 Bytes, dist 18Ur"[Oo]",'ಠ
13 Bytes, dist 27X=Uq f;XoU*X+1,X
16 Bytes, dist 522oU fX=>2oX eY=>X%Y &&!(U%X)r(X,Y =>X+Y
39 Bytes, dist 172UmX=>128o mY=>Yd)a k'A i#Z,'A k'a i#z,'a gXc
44 Bytes, Abstand 216Hier ist ein Ausschnitt, der Ihnen (einen) der effizientesten Wege zeigt, Ihre Programme zu arrangieren:
Code-Snippet anzeigen
Mit der neuesten Version von Japt (die in dieser Herausforderung nicht konkurriert) werden die meisten Aufgaben kürzer:
s36 u
5 Bytesmc
2 Bytesv#ۊ
4 Bytes
oq
2 Bytes;B±B+C²UrF,@Bg1+BbX
19 Bytesk â x
5 Bytes"PPCG
5 BytesB=U¬f)oU*B+1B
13 Bytesro'ಠ'i
6 BytesDie optimale Reihenfolge ist jetzt 2,4,3,1,6,7,9,8,5, in den kommenden auf eine satte Punktzahl von 217 , weniger als ein Drittel des ursprünglichen!
Vorschläge willkommen!
quelle
Pyth, Score 489
Basis-Konvertierung: 15
Caesar Cipher: 13 + 11 ^ 1.5
Teilbar durch 1738: 7 + 11 ^ 1.5
Erste N positive ganze Zahlen: 8 + 8 ^ 1.5
Summe der Primfaktoren: 4 + 6 ^ 1.5
Auftreten von q in string: 4 + 4 ^ 1,5
Verbinden Sie alle ASCII-Codes: 5 + 4 ^ 1.5
"PPCG" drucken: 5 + 5 ^ 1.5
Ersetzen durch
ಠ
: 9 + 7 ^ 1.5quelle
Rubin, 1488
Wahrscheinlich viel Raum für Verbesserungen. Verbrachte die meiste Zeit damit, die Punktzahl zu berechnen ...
Summe der Primfaktoren : 64 36 Base : 30 + 47 1,5 = 352 Teilbar durch 1738 : 22 + 15 1.5 = 80 PPCG drucken : 9 + 18 1,5 = 85 Enthält Stringq
? : 10 + 8 1,5 = 32 Replaceo
: 23 + 16 1,5 = 87 Caesar-Chiffre : 32 + 21 1,5 = 128 ASCII-Codes : 37 + 26 1,5 = 169 Ganze Zahlen teilbar durch Quadratwurzel : 72 + 56 1,5 = 491quelle
Java, Punktzahl 8331
Diese Höhenunterschiede bringen meine Punktzahl hier um.
(Diese Programme nehmen Eingaben als Befehlszeilenargumente entgegen.)
Programm 1 (119):
Programm 2 (120 + 56 1,5 = 539):
Programm 3 (101 + 49 1,5 = 444):
Programm 4 (108 + 20 1,5 = 197):
Programm 5 (186 + 107 1,5 = 1293):
Programm 6 (327 + 228 1.5 = 3747):
Programm 7 (336 + 10 1,5 = 368)
Programm 8 (351 + 34 1,5 = 549):
Programm 9 (305 + 84 1,5 = 1075):
quelle
Pyth, Punktzahl 817
Nummer 1: 24
Nummer 2: (9 + 16 1,5 = 73)
Nummer 3: (5 + 8 1,5 = 27)
Nummer 4: (5 + 14 1,5 = 57)
Nummer 5: (39 + 37 1,5 = 264)
Nummer 6: (4 + 39 1,5 = 247)
Nummer 7: (5 + 4 1,5 = 13)
Nummer 8: (12 + 12 1,5 = 53)
Nummer 9 (13 + 13 1,5 = 59)
Nicht das Beste, ich habe gerade angefangen, Pyth zu lernen und dachte, ich würde es versuchen, Nummer 5 hat meine Punktzahl wirklich zunichte gemacht. Ich denke, ich kann ein paar davon kürzer machen, aber das wird mich auf der Strecke mehr verletzen. Alle Tipps von erfahrenen Pyth-Benutzern sind willkommen.
quelle
You must use one language to write programs that perform the following nine tasks, in any order.
Viel Glück!5 + 14^1.5
ist nicht 19Python 3 (derzeit ungültig), 621 Byte
Nicht wirklich so guter Code, aber irgendwie funktioniert: D. Die Summe der Primfaktoren funktioniert nicht. Ich erhalte immer ein anderes Ergebnis als Ihr Beispiel, also habe ich es entfernt. Python unterstützt das Zeichen auch nicht.
ಠ
Stattdessen wirdo
s durch0
s ersetztIO INFO:
1. Eingabe: int in Basis 10 | Ausgabe: diese Zahl in Basis 36
2. Eingabe: eine Zeichenkette | Ausgabe: ASCII-Nummern des Strings
3. Eingabe: Ganzzahl | Ausgabe: Richtig oder falsch, abhängig davon, ob die Zahl durch 1738 teilbar ist
4. Eingabe: String | Ausgabe: T oder F, je nachdem, ob der String "q" enthält
5. Eingabe: String | Ausgabe: Caser Cipher +1 des Strings
6. druckt nur "PPCG" wörtlich
7. Eingabe: int n | Ausgabe: erste n Ints durch Etage teilbar (sqrt (n))
8. Eingabe: String | Ausgabe: Ersetzte alle
o
s durch 0 (nicht durch ಠ, da Python dieses Zeichen nicht unterstützt, werde nicht zu wütend :))quelle