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.
07
das selbe wie 7
?
-
noch n
...
4