Verwendung der 74 Zeichen aus der 2016er Zeitkapsel-Zeichenfolge
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Schreiben Sie N Code-Schnipsel in derselben Sprache, wobei:
- Das erste Snippet wird ausgegeben
1
. - Das 2. Snippet wird ausgegeben
2
. - Das 3. Snippet gibt aus
3
. - ... etc. ...
- Das N-te Snippet wird ausgegeben
N
(die Nummer, nicht der Buchstabe).
Ein "Code-Snippet" ist wie folgt definiert:
- Ein vollständiges Programm ohne Eingabe, das die Nummer normal ausgibt .
- Eine Funktion ohne erforderliche Argumente, die die Nummer normal ausgibt / zurückgibt .
- Ein REPL- Ausdruck, der als Zahl ausgewertet wird.
(Sie können diese drei Varianten in Ihren N-Ausschnitten mischen und zuordnen.)
Die Zeichen, die Sie in der kombinierten Menge von N Ausschnitten verwenden dürfen, sind genau die 74 Zeichen der Zeitkapsel plus floor(N/2)
zusätzliche "Platzhalter" -Bytes , die Sie überall verwenden können.
Beispielsweise enthält die Zeitkapsel drei @
, sodass in der Gesamtheit Ihrer N Ausschnitte möglicherweise nur bis zu drei @
vorhanden sind, es sei denn, Sie möchten einige Ihrer floor(N/2)
Platzhalterbytes für zusätzliche verwenden @
.
Ohne Platzhalterzeichen muss der kombinierte Zeichensatz in Ihren N Ausschnitten eine Teilmenge der 74 Zeitkapselzeichen sein. Ihre kombinierte Länge darf 74 nicht überschreiten. Sie dürfen Zeitkapselzeichen oder Platzhalterbytes zwischen Ausschnitten nicht wiederverwenden.
Anmerkungen
Es gibt keine weiteren Beschränkungen hinsichtlich der Länge von Snippets oder der Anzahl der Platzhalter, die pro Snippet verwendet werden dürfen.
Sie müssen alle Ausschnitte für 1 bis N schreiben . Es ist nicht 0 bis N-1, nicht k bis N + k-1.
Die Snippets müssen einzeln sein, nicht ein Snippet, das die Liste ausgibt
1, 2, 3, ..., N
.Ausgaben können Floats sein wie
3.0
anstelle von3
und Sie können eine andere Basis als Dezimal verwenden, wenn es die natürliche Basis Ihrer Sprache ist . Sie müssen für alle Snippets dieselbe Basis verwenden.Die Platzhalter werden in der Codierung Ihrer Sprache als Byte gezählt . Dies wird wahrscheinlich ASCII sein, aber wenn z.
∞
B. ein Byte in Ihrer Codierung zählt, können Sie es als ein einzelnes Platzhalterbyte verwenden.Sie können Platzhalterbytes für Multibyte-Zeichen verwenden. ZB sind
∞
es normalerweise drei Bytes, so dass Sie es in einem Snippet verwenden können, aber es kostet drei Ihrerfloor(N/2)
Platzhalter-Bytes.Zeilenumbrüche wie
\r\n
können als ein Byte angesehen werden.
Beispiel
In Python ist N = 4 nur mit der REPL möglich. Es gibt floor(4/2) = 2
Platzhalter.
1
Aus der Zeit Kapsel ist ein Ausdruck, der zu auswertet1
.2
besteht aus einem einzelnen Platzhalter, nämlich dem2
. Evals zu2
.3
besteht ebenfalls aus einem einzelnen Platzhalter. Evals zu3
. Keine Platzhalter mehr.4
ist zum glück in der zeit kapsel und es fällt auf4
.
Diese Schnipsel sind kurz und trivial. Eine echte Antwort wäre wahrscheinlich viel komplexer.
(Fünf und mehr in Python sind sicherlich möglich, aber ich überlasse es den Profis.)
Wertung
Die Antwort mit den höchsten N gewinnt; dh derjenige, der die ganze Leiter am höchsten klettert.
Bei einem Gleichstand gewinnt die Antwort, bei der die wenigsten Platzhalterbytes verwendet wurden.
Falls es immer noch einen Gleichstand gibt, gewinnt die Antwort, bei der die wenigsten kumulativen Zeichen verwendet wurden.
Wenn es immer noch einen Gleichstand gibt, gewinnt die frühere Antwort.
quelle
4
07
das selbe wie7
?-
nochn
...Antworten:
CJam , 25 Snippets, 12 Wildcards, 64 Bytes
Probieren Sie es online!
Platzhalter:
Ich habe das Gefühl, dass ich schnell etwas posten muss, bevor Dennis mich überlistet.
quelle
CJam , 23 Snippets, 11 Wildcards, 45 Bytes
Probieren Sie es online! | Platzhalterzähler (ignoriere die Zeilenumbrüche)
quelle
JavaScript, 10 Zahlen, 5 Platzhalter
Verbleibende Zeichen:
!!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~
5/5 verwendete Bonuscharaktere:
37680
Programme:
1
3
4
4|!``
6
7
8
9
0xA
Ich hatte gehofft, dass eine der Saiten, die ich verwenden könnte,
\xAB
eine Zahl sein würde, aber leider würde keine der Kombinationen, die ich versuchte, eine ergeben. Es^
wäre auch interessant, das (XOR) -Zeichen zu verwenden, aber ich sehe derzeit keine Möglichkeiten, mit denen eine ausreichend große Zahl erstellt werden kann.Wenn Sie eine andere mögliche Kombination sehen, lassen Sie es mich in den Kommentaren wissen.
Edit: # 10 dank Arnauld hinzugefügt
quelle
10. 0xA
(mit0
einer neuen Wildcard für das Erreichen von 10)(Q=!``)|Q
für 1 tun , um1
irgendwo ein Extra zu bekommen . Ich bin mir nicht sicher, ob das helfen wirdPyth, 12 Snippets, 20 Bytes (6 Wildcards)
Suchen Sie die erste Zahl, bei der Wurzel (n, n) wahr ist, beginnend mit 1. Ausgabe: 1
Doppelt nicht
{}
. Ausgabe: 2Platzhalter # 1. Ausgabe: 3
Ausgabe: 4.
Platzhalter # 2. Ausgabe: 5
Platzhalter # 3. Ausgabe: 6
Platzhalter # 4. Ausgabe: 7
Platzhalter # 5. Ausgabe: 8
Ausgabe: 9
Vorinitialisierte Variable. Ausgabe: 10
Zehn plus nicht Null. Ausgabe: 11
Platzhalter # 6 (
2
). Ausgabe: 12quelle
Oktave, 6 Zahlen, 3 Wildcards
Ich habe immer noch
1
,9
und nach*
links, aber ich weiß nicht , ob es mir viel helfen. Ich werde sehen, was ich damit machen kann :)Es ist nicht einfach, viele Zahlen zu bekommen, wenn man keinen Esolang verwendet. Ich hoffe, ich kann ein oder zwei mehr bekommen, aber ich denke, es wird schwer.
quelle
Aufdringlich , 10 Zahlen (4 Wildcards)
All dies sind Schnipsel, die das Ergebnis auf dem Stapel belassen. Sie können dies im Online-Interpreter testen, indem Sie
#
an jedes Snippet etwas anhängen (um die Nummer auszudrucken).Diese Antwort ist noch nicht vollständig - obwohl es unwahrscheinlich erscheint, dass ich weiterkomme.
quelle
05AB1E, 12 Zahlen, 6 Platzhalter
quelle
Hexagony , 6 Zahlen, 3 Wildcards, 23 Bytes
Probieren Sie es online!
Das gesamte sechste Programm besteht aus Platzhaltern.
Das einzig wirklich Interessante ist
3
. Während ich das so machen könnte4(!@
, würde mich das ohne weiteres4
generieren lassen5
, also ging ich stattdessen so vor:Aufgrund der
|
wird die)
in der ersten Zeile zweimal ausgeführt, bevor die IP zur rechten Ecke umgebrochen wird.$
überspringt die@
und\
leitet die IP dann)
ein drittes Mal weiter. Die IP-Adresse wird in die linke untere Ecke!
umgebrochen,3
und gedruckt@
beendet das Programm.Ich denke nicht, dass mehr als 6 Schnipsel möglich sind, da es nur 5 Druckbefehle (
!!!!!
) und 5 Befehle gibt, mit denen das Programm beendet werden kann (@@@%:
). Nach dem fünften Snippet benötigen wir also mindestens zwei Platzhalter pro Snippet. Selbst wenn ich es schaffte,6
ohne Platzhalterzeichen auszukommen, gab es nicht mehr genügend Platzhalterzeichen, um zu Snippet sieben zu gelangen.quelle
JavaScript, 8 Zahlen, 4 Platzhalter
Vielleicht versuche ich es später noch einmal - ich verschwende die Zeichen auf 2 und 6, wenn Sie es wissen.
quelle
Befunge-98, 4 Snippets, 18 Bytes, 2 Wildcards
Zeichen übrig:
!!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~
Ich bezweifle, dass mehr möglich ist, da jedes zusätzliche Programm eine Ausgabeform erfordert, und das alles
.,
bereits verbraucht sind. Wenn ich einen Weg finden kann, 3 und 5 ohne Platzhalter zu machen, dann ist es möglich.Das letzte Programm wird schließlich aufgrund des Auffüllens des Stapels beendet.
A
undH
wenn keine Fingerabdrücke geladen sind, werden diese reflektiert und das Programm drückt weiterhin die 9er.quelle
%
.00%
ist gültig in Befunge-98 und ergibt 0 (oder fragt den Benutzer nach dem Ergebnis in Befunge-93.{
bei Speichermangel eine Umkehr möglich ist. Über normales Pushen wird nichts gesagt, und alle Interpreter scheinen bei OOM zu versagen, aber in der Sprachspezifikation werden klarerweise Speicherbeschränkungen berücksichtigt.p
Charakters möglicherweise verbessert werden könnte (vielleicht ???) , aber es würde einige Arbeit erfordern. Sie könnten tune%9
, um 5 zu bekommen, aber Sie würden eine Möglichkeit brauchen, es zu drucken und das Programm zu beenden, also bezweifle ich esSmileBASIC, 12 Snippets, 5 Wildcards, 31 Bytes
Ich hätte auch eine Variable anstelle von
.
(Variablen beginnen bei 0) und eine String-Variable (wieQ$
) anstelle von verwenden können@Q
Zeichen verwendet:
!!!#&*+...1449@AHILQQTem||
Wildcards verwendet:
67813
unbenutzte Zeichen:
!!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~
quelle