Gibt die Arecibo-Nachricht aus

38

Die Arecibo-Nachricht ist eine interstellare Funknachricht von 1974, die grundlegende Informationen über Mensch und Erde enthält und an den Kugelsternhaufen M13 gesendet wird, in der Hoffnung, dass außerirdische Geheimdienste sie empfangen und entschlüsseln können ... Die Nachricht bestand aus 1.679 Binärziffern, ungefähr 210 Bytes ...

Die Zahl 1.679 wurde gewählt, weil es sich um ein Semiprime handelt (das Produkt aus zwei Primzahlen), das rechteckig in 73 Zeilen und 23 Spalten angeordnet ist. Die alternative Anordnung, 23 Zeilen mal 73 Spalten, erzeugt einen unverständlichen Zeichensatz (wie alle anderen X / Y-Formate).

Die Arecibo-Botschaft

Dies ist die Nachricht, bei der Farbe hinzugefügt wurde, um die einzelnen Teile hervorzuheben. Die eigentliche binäre Übertragung enthielt keine Farbinformationen.

Quelle: Wikipedia


Ihre Aufgabe ist es, die Arecibo-Nachricht in der im Bild gezeigten exakten 23x73-Anordnung auszugeben. Jedes dieser Ausgabeformate ist akzeptabel:

  • Text, wobei ein Zeichen für Einsen und ein anderes für Nullen verwendet wird (unter Verwendung der üblichen Regeln für die Zeilentrennung)
  • Ein 2D-Array mit zwei unterschiedlichen Werten
  • Ein 23x73-Bild mit zwei unterschiedlichen Farben
  • Ein ununterbrochener Strom von 1679 Elementen mit zwei unterschiedlichen Werten (dh eines der oben genannten Formate, aber flach).
  • Eine 1679-Bit-Ganzzahl. Geben Sie die Bit- und Byte-Reihenfolge (Endianze) in Ihrer Lösung an.

Der Einfachheit halber finden Sie hier eine kopierfähige Version (auch eine Beispielausgabe im Textformat):

00000010101010000000000
00101000001010000000100
10001000100010010110010
10101010101010100100100
00000000000000000000000
00000000000011000000000
00000000001101000000000
00000000001101000000000
00000000010101000000000
00000000011111000000000
00000000000000000000000
11000011100011000011000
10000000000000110010000
11010001100011000011010
11111011111011111011111
00000000000000000000000
00010000000000000000010
00000000000000000000000
00001000000000000000001
11111000000000000011111
00000000000000000000000
11000011000011100011000
10000000100000000010000
11010000110001110011010
11111011111011111011111
00000000000000000000000
00010000001100000000010
00000000001100000000000
00001000001100000000001
11111000001100000011111
00000000001100000000000
00100000000100000000100
00010000001100000001000
00001100001100000010000
00000011000100001100000
00000000001100110000000
00000011000100001100000
00001100001100000010000
00010000001000000001000
00100000001100000000100
01000000001100000000100
01000000000100000001000
00100000001000000010000
00010000000000001100000
00001100000000110000000
00100011101011000000000
00100000001000000000000
00100000111110000000000
00100001011101001011011
00000010011100100111111
10111000011100000110111
00000000010100000111011
00100000010100000111111
00100000010100000110000
00100000110110000000000
00000000000000000000000
00111000001000000000000
00111010100010101010101
00111000000000101010100
00000000000000101000000
00000000111110000000000
00000011111111100000000
00001110000000111000000
00011000000000001100000
00110100000000010110000
01100110000000110011000
01000101000001010001000
01000100100010010001000
00000100010100010000000
00000100001000010000000
00000100000000010000000
00000001001010000000000
01111001111101001111000

Wenn Ihre Sprache aus irgendeinem Grund über eine integrierte Funktion für die Arecibo-Nachricht verfügt, können Sie diese integrierte Funktion möglicherweise nicht verwenden.

Viel Glück!

UPDATE: Ich habe die 05AB1E-Antwort akzeptiert, da es die erste war, die kürzer war als die ursprüngliche Nachricht. Lassen Sie sich dadurch nicht von neuen Lösungen abbringen.

UPDATE 2019-09-09: Die akzeptierte Antwort wurde auf eine neue 05AB1E-Antwort verschoben, da die vorherige 05AB1E-Antwort ungültig wird. Der gleiche Punkt gilt für das vorherige Update. neue lösungen sind weiterhin willkommen.

Beefster
quelle
9
Wenn eine Sprache eine für Arecibo eingebaute Botschaft hat, kann ich mit Sicherheit sagen, dass ich alles auf dieser Welt gesehen habe. C:
Luis felipe De jesus Munoz
6
In Mathematica (IIRC) ist ein Image für Lena integriert, daher würde es mich nicht überraschen, wenn es auch eine Aricebo-Nachricht enthält.
Beefster
@RobertS. nein, da es neben text noch andere gültige formate gibt.
Beefster
4
Im Sinne des Originalformats sollte eine flache Ausgabe / Ausgabe erlaubt sein. Der springende Punkt bei 1679 Bits ist genau, dass die richtige Anzahl von Zeilen und Spalten aus der Signallänge abgeleitet werden kann.
Adám
4
@LuisfelipeDejesusMunoz Mathematica hat eine builtin zu Ziegen in einem Bild zu bestimmen , so dass eine builtin Arecibo - Nachricht würde mich auch nicht wirklich überraschen .. Diese Sprache auf builtins des Universums gebaut ..>>.
Kevin Cruijssen

Antworten:

2

05AB1E , 182 Bytes

•sv¯ö¨₁ÿ.ÛïžôΔ¨γ_Ígv…=Bм„Ð.(ܦi´…ε±G½0^/₃öRÛž¼¤"āêL!ˆ6‘Gā܇ðв₁÷Ã7€₂䬂Cć¨g¾†@÷[_-68¯a∍iG*6ÆîÆ;>éjζãÎÂ+ºžnî¼ć'(ÝÞΔ‹∞ÉݹÕ5λ₆*a|§oÄmôæ¨;—:hž¥ð¢ocË'¨%¡4Ćáß©ìća;FÁ?iˆèεƒʒ•Ž6–FD4‰`3ÊD?i-

Probieren Sie es online! (verwendet 1für 0 und 0für 1, wie in der Frage angegeben).

Probieren Sie es online! (5 Bytes länger, 0für 0 und 1für 1 wurden zur besseren Lesbarkeit neue Zeilen hinzugefügt).

Der größte Teil des Codes ist eine Basis-255-Ganzzahl-Konstante N, der Rest ist ein Asymmetric Numeral System- Decoder, der hartcodierte Wahrscheinlichkeiten von 75% / 25% verwendet (die tatsächliche Häufigkeit von 0 beträgt 76,35%, was so nahe an 75% liegt, dass dies der Fall ist) würde nur 1,2 Bits in der Nutzlast einsparen, während die nette und runde 75% uns mehrere Bytes im Decoder einsparen lässt).

Ž6–F                  # repeat the following 1679 times:
    D                 #  duplicate N
     4‰`              #  divmod 4: pushes N / 4, N % 4 on the stack
        3Ê            #  is N % 4 != 3 ? (boolean 1 or 0)
          D?          #  print a copy
            i-        #  if it's 1, subtract: N = N - (N / 4)
                      #  (otherwise, N = N / 4, since that's the top of the stack)

Hier ist der ANS-Encoder, der die Konstante generiert hat: Probieren Sie es online aus!

Î                          # start from N = 0
 Rv         ]              # for each bit in the reversed input:
   4*                      #  N *= 4
     yi                    #  if the bit is 1:
       3+                  #   N += 3
         ë                 #  else:
          3÷               #   N /= 3 (integer division)
             ₅B'•.ø        # compress N as base-255
Grimmig
quelle
Gute Arbeit bei der Überholung der vorherigen 05AB1E-Antwort!
Beefster
13

05AB1E , 215 210 200 Bytes

Dank Magic Octopus Urn 15 Bytes gespart

•cOž¤4é57ñΛ\Ö₃BαöĀíL½₅üBdoÙRθLγ¨G×Tćú$G(˜ƒ¦!€R»SDrµCnJ†d∊ζ·<8‡T@|‹ï=BζćósxG\ÙÎ$¿o₁5/ÔŸÇBûXé-”a::Ž]°∊y;ζ]MÜβ‘иL”β{üÃÇíäc€÷›ÎU=}¨иaŸdY`»¾ÚUβ:ô©¦β†₅DGŠβ3Jêθ,äá!ícqšVÖ›lÈΣ¯pε €êʃDpÙ/¬Žλ8:ãÿ3=€.Þć•3BY¾4×:

Probieren Sie es online! oder mit Zusätzlicher Formatierung

Base-255-codierte Trinary-Zeichenfolge, deren Vorkommen durch 0000ersetzt wird 2.

Emigna
quelle
@MagicOctopusUrn: Danke! Das macht es 210 sogar :)
Emigna
Es ist eigentlich noch besser , wenn Sie ersetzen 0000mit 2von 9 weiterem Bytes. - pastebin.com/aZ6tHxjx für 201
Magic Octopus Urn
@MagicOctopusUrn: Ja, ich fand das auch und wollte es gerade posten :)
Emigna
2
Cool! Da die Arecibo-Nachrichten 210 Byte (23 * 73/8 = 209.875) umfassen, ist Ihre Lösung (derzeit 200 Byte) kürzer als die Nachricht selbst!
JL
Ich ging voran und machte dies zur akzeptierten Antwort, da es das erste war, das kürzer war als die eigentliche Nachricht.
Beefster
11

Java, 688 678 590 379 361 Bytes

Gibt eine Zeichenfolge zurück.

n->new java.math.BigInteger("in95mzupnpa2r0khpoepyql6ioqyn413avucdtfay6indx4wh9dehe3sn18klobtf4z9g9q17umqmwpegr2khb5eqinn7azl4jpfp2a8eui0xfrx5qwrou6gd65jh4ge3ls14k5lu7qrvmg6942ms29u5rb8fa6yrdhfoh5zoi9bdi7uh5ig0u0ff9kounth8sh357x7qox4m3oqviqsbrvakonbka4ahp21bgzi5v1akzzuqoncszhpabbru9q1uo2g11zr73iuyiqr5ikr69zn7cdv7e1lhd6ese9",36).toString(3).replace("2","0000")

-10 Bytes durch Rückgabe des Rohdatenstroms (alte Antwort)
-88 Bytes durch Verwendung von 10er-Zahlen (danke @ceilingcat!)
-211 Bytes (ich wusste, dass es golfen werden kann!) Durch Verwendung einer Base-36-codierten BigInteger (danke @JollyJoker) !)
-18 Bytes durch Verwendung einer anderen codierten Ganzzahl (nochmals danke @JollyJoker)

Probieren Sie es online!

Erläuterung:

n->new java.math.BigInteger("base36 string",36) // Decode the base-36 integer.
   .toString(3)                                 // Re-encode as ternary
   .replace("2","0000")                         // Replace 2 with "0000"
                                                // Implicit return
Benjamin Urquhart
quelle
1
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Adam Lear
9

Jelly , 213 Bytes

“H²ɓ¶Ṡḷ€ẹ]ƒf*ḳḢ&ƁṇOḥ{ḄṫwỊ+oLạʋߢH9¢¹÷ỴɗÇ⁶ƲƙæḊẋ3³=1!VƇƁ'D⁺3Ỵɱ©⁵%fȯez#ƈjƒżṆo.ZF⁶ċṢ⁶ọṛb9Ȯƒd?ƁUĠt4ẇ,ḞġƒµƭfʠƁP§÷øȤŻPɲẋ(¢ß¢(⁽3¶ṙėɗy@ṁYȮL~e⁷ƤĊ§nỊṅµṠ°@7ẠB>Ġ⁻İ}uy¡½:esOpḢt}qS©HÞṬĖṛṇḣ9÷;ESḢ,Ẉ^ṙpƲ©tṃwçnẒṆ¡⁻Jıƒị£-&Ɱ*ẋʂżoȯÑḢɼ’

Probieren Sie es online!

Ich habe mit der Huffman-Codierung herumgespielt, aber die Verbesserungen der Datengröße wurden durch den zusätzlichen Code aufgewogen. Als solches ist dies einfach eine Base-250-codierte Version der gewünschten Ausgabe. Die Ausgabe besteht aus einer Ganzzahl, die bei Dekodierung als bijektive Basis 2 die 1D-Liste von 1s und 2s ergibt. Vielen Dank an @Emigna für den Hinweis auf die Änderung der Regeln.

Probieren Sie es online aus - mit weiterer Dekodierung, um die Ausgabe zu demonstrieren!

Wenn eine konventionellere Binärcodierung bevorzugt wird, ist hier eine solche, die eine ganzzahlige Darstellung der invertierten Binärnachricht codiert. Das höchstwertige Bit der Ganzzahl steht für den Beginn der Nachricht.

Nick Kennedy
quelle
7

Brainfuck, 2360 2008 1938 Bytes

-[>+<-----]>---......+.-.+.-.+.-.+.-............+.-.+.-.....+.-.+.-.......+.-.<++++[->.+.-..<]>+.-.+..-.<+++++++++[->.+.-<]>..+.-..+.-<++++++[->......<]>.+.<++[->.-...................+..-.+<]>.-..................+.-.+.-.+.-..................+.....-<++++++++[->....<]>+..-....+...-...+..-....+..-...+.-.............+..-..+.-....+..-.+.-...+..-...+..-....+..-.+<++++[->.-.+....<]>.-<+++++[->.....<]>.+.-.................+.-............................+.-.................+......-.............+.....-.......................+..-....+..-....+...-...+..-...+.-.......+.-.........+.-....+..-.+.-....+..-...+...-..+..-.+.-.+.....-.+.....-.+.....-.+.....-..........................+.-......+..-.........+.-...........+..-...............+.-.....+..-..........+......-.....+..-......+.....-..........+..-.....<+++[->........+.-<]>.....+.-......+..-.......+.-.......+..-....+..-......+.-..........+..-...+.-....+..-...............+..-..+..-.............+..-...+.-....+..-.........+..-....+..-......+.-.......+.-......+.-........+.-.....+.-<++[->.......+..-........+.-...+.-.<]>........+.-.......+.-<++++[->.....+.-..<]>..........+..-.........+..-........+..-.........+.-...+...-.+.-.+..-...........+.-.......+.-..............+.-.....+.....-............+.-....+.-.+...-.+.-..+.-.+..-.+..-......+.-..+...-..+.-..+.......-.+...-....+...-.....+..-.+...-.........+.-.+.-.....+...-.+..-..+.-......+.-.+.-.....+......-..+.-......+.-.+.-.....+..-......+.-.....+..-.+..-<+++++++[->.....<]>+...-.....+.-..............+...-.+.-.+.-..<++++++[->.+.-<]>..+...-.........+.-.+.-.+.-.+.-................+.-.+.-..............+.....-................+.........-............+...-.......+...-.<++[->........+..-...<]>....+..-.+.-.........+.-.+..-<++[->.....+..-..+..-..<]>..+.-...+.-.+.-.....+.-.+.-...+.-..<+++[->..+.-...+.-<]>........+.-...+.-.+.-...+.-............+.-....+.-.<++[->...+.-.........<]>+.-..............+.-..+.-.+.-...........+....-..+.....-.+.-..+....-...

Probieren Sie es online!

Ich werde das wahrscheinlich bald noch weiter Golf spielen.

Orthoplex
quelle
5

Deadfish ~ , 1115 1088 1084 Bytes

oooooo{i}ooo{d}iod{o}{i}c{d}ooiodoiodoooooiodoiodoooooooiodoo{i}c{ii}is{iiii}doooio{{{d}}}oioodooiodo{i}coooooooo{d}o{{i}}oo{{d}i}c{d}{oo}ooo{i}c{d}{o}ooioodooooooooo{i}c{d}{o}ioodoiodooooooooo{i}c{d}{o}ioodoiodooooooooo{i}c{d}oooooooooiodoiodoiodooooooooo{i}c{d}oooooooooiooooodooooooooo{i}c{d}{oo}ooo{i}c{d}ioodooooiooodoooioodooooioodooo{i}c{d}iod{o}oooioodooiodoooo{i}c{d}ioodoiodoooioodoooioodooooioodoiodo{i}c{d}iooooodoiooooodoiooooodoioooood{i}c{d}{oo}ooo{i}c{d}oooiod{o}oooooooiodo{i}c{d}{oo}ooo{i}c{d}ooooiod{o}oooooooiod{i}c{d}ioooood{o}oooioooood{i}c{d}{oo}ooo{i}c{d}ioodooooioodooooiooodoooioodooo{i}c{d}iodoooooooiodoooooooooiodoooo{i}c{d}ioodoiodooooioodoooiooodooioodoiodo{i}c{d}iooooodoiooooodoiooooodoioooood{i}c{d}{oo}ooo{i}c{d}oooiodooooooioodoooooooooiodo{i}c{d}{o}iood{o}o{i}c{d}ooooiodoooooiood{o}iod{i}c{d}iooooodoooooioodooooooioooood{i}c{d}{o}iood{o}o{i}c{d}ooiodooooooooiodooooooooiodoo{i}c{d}oooiodooooooioodoooooooiodooo{i}c{d}ooooioodooooioodooooooiodoooo{i}c{d}ooooooioodoooiodooooioodooooo{i}c{d}{o}ioodooioodooooooo{i}c{d}ooooooioodoooiodooooioodooooo

Probieren Sie es online!

Wenn jemand die Geduld hat, weiter Golf zu spielen, grüße ich Sie im Voraus. : P

-27 Bytes durch Drucken von 10s und 100s an den entsprechenden Stellen.
-4 Bytes durch Drucken von drei 1000 und einem 1001 in Zeile 3

Setzen Sie Monica wieder ein
quelle
4

Piet , 1763 codels

Gibt einen Strom von 0s und 1s aus (keine Zeilenumbrüche).

Codel Größe 1:

Arecibo-Nachrichtenprogramm mit Codelgröße 1

Codel Größe 4, zur leichteren Anzeige:

Arecibo-Nachrichtenprogramm mit Codelgröße 4

Erläuterung

  • Schieben Sie zunächst einen Sentinel-Wert von -1 auf den Stapel.
  • Drücken Sie dann die Arecibo-Nachricht in umgekehrter Reihenfolge (da es sich um einen Stapel handelt) und verwenden Sie dabei die Lauflängencodierung.
  • Wechseln Sie abschließend zwischen zwei Schleifen, wobei eine Null und die andere Einsen druckt.
    • Der Schleifenzähler ist der aktuelle Stapelwert, der dekrementiert wird, bis er Null erreicht. An diesem Punkt wird er verworfen und wir wechseln zur anderen Schleife.
    • Überprüfen Sie zwischen der Nullen-Schleife und der Einsen-Schleife, ob der Sentinel-Wert gefunden wurde.

Anmerkungen

Das Programm folgt einem spiralförmigen Pfad im Uhrzeigersinn von links oben in die Mitte. Die verstreuten schwarzen Blöcke, die in etwa den Diagonalen folgen, sind die Flusskontrolle. Hier ist die Spur von NPiet .

Ich arbeite seit dem Tag daran, an dem diese Herausforderung aufstieg, aber es hat ein bisschen gedauert, bis die Nachricht "geschrieben" wurde! Ich habe zuerst die letzten Schleifen und den Sentinel-Wert geschrieben und dann die Nachricht von der Mitte nach außen aufgebaut. (Da Piet immer von links oben mit der Ausführung beginnt, musste ich das Bild mischen und drehen, um übermäßige Leerzeichen zu vermeiden, aber es passte perfekt!)

Unterhaltsame Tatsache: Die Lauflängencodierung in Piet spart (von sich aus) keinen Platz. Es sind n Kodierungen einer Farbe erforderlich, um den Wert n auf den Stapel zu schieben , oder n Kodierungen verschiedener Farben, um so viele Einsen auf den Stapel zu schieben. Es ist also so oder so die gleiche Anzahl von Codels. Aber die größeren Zahlen, die RLE gibt, bedeuten, dass Sie arithmetische Tricks verwenden können (z. B. können Sie anstelle von 9 3 drücken, duplizieren und multiplizieren), um die Anzahl der Codels zu verringern, und witzig geformte Blöcke, um die verfügbaren Leerzeichen auszufüllen.

Ich war mir nicht sicher, wie ich die Punkte für Piet-Einträge zählen sollte. Ich fand einige, die alle Codels zu zählen scheinen, und andere, die explizit nur die aktiv verwendeten zählen. Ich habe sie alle gezählt. Das Ignorieren von weißen Codierungen (auch derjenigen, durch die sich das Programm niemals bewegt) ähnelt dem Ignorieren von Leerzeichen in einer typischeren Programmiersprache.

Oh, und ich habe erst jetzt (zwei Stunden nach dem Posten) gemerkt, dass ich das letzte bisschen Zeit damit verschwendet habe. Ich wollte die fast vollständig weiße letzte Zeile und Spalte abschneiden, also habe ich die Dinge herumgemischt ... einschließlich der schwarzen Flusskontrollblöcke. Die Bildränder funktionieren jedoch genauso wie bei Schwarz! Wenn ich mich nur daran erinnert hätte, hätte ich nicht so viel Zeit gebraucht, um über die Feinheiten von DPs und CCs zu rätseln ...

Tim Pederick
quelle
3

C # (Visual C # Interactive Compiler) , 366 332 329 319 Byte

int i;foreach(var g in"*ЀʂЄ࢈ҲપԤ␀␀␀؀ȀȀȀ؀␀␀సؘࠀƐഘؚ྾ߟ␀␀Ā␀␀ྀ␀␀రܘࠈഌΚ྾ߟ␀␀ă␀ྃ␀ȁăÃ1`ƀ1`ÃĂȃЃЁȂĀ`ÀƀȺ؀Ȃ␀ȏЀȗɛ'Ŀஇ7;ȅ?ȅ0ȍЀ␀␀΂␀ΨՕ΀Ŕ␀ŀЀ?܀àǀƀ`̀°٠Ƙѐʈш҈EB@Ѐޟɸ")Write(Convert.ToString(g,2).PadLeft(12-i++%2,'0'));

Ersetzen Sie alle zu testenden Instanzen von mit \0.

Probieren Sie es online!

C # (Visual C # Interactive Compiler) , 305 Byte, 210 Zeichen

_=>"*ЀʂЄ࢈ҲપԤ␀␀␀؀ȀȀȀ؀␀␀సؘࠀƐഘؚ྾ߟ␀␀Ā␀␀ྀ␀␀రܘࠈഌΚ྾ߟ␀␀ă␀ྃ␀ȁăÃ1`ƀ1`ÃĂȃЃЁȂĀ`ÀƀȺ؀Ȃ␀ȏЀȗɛ'Ŀஇ7;ȅ?ȅ0ȍЀ␀␀΂␀ΨՕ΀Ŕ␀ŀЀ?܀àǀƀ`̀°٠Ƙѐʈш҈EB@Ѐޟɸ".Select((g,i)=>Convert.ToString(g,2).PadLeft(12-i%2,'0'))

Das Gleiche gilt für oben, ersetzt mit \0zu testen. Ausgabe als IEnumerable<string>.

Probieren Sie es online aus! (Mit freundlicher Genehmigung von Jo King)

Verkörperung der Ignoranz
quelle
Ich glaube, die ++in 12-i++%2ist ein Nopp (zumindest hat es bei mir funktioniert, als ich es entfernt habe)
jemand
@someone Sie sind ein Copy-Paste aus der alten Antwort, die ich vergessen habe zu entfernen
Verkörperung der Ignoranz
2

Perl 6 , 368 Bytes

.say for :36('FJXOE0PDDNF5Y5EHGB8M9SWMXQOXIKIT9F6ZKWWDEACHCBGXL1N2H60CN0CJ4EMKF7D6MODSKYJVNR4SFTDR6NSM421LQ67B6MWF0G5BQATFOJJJBQ0UFQM64T0MWSQN41C4S5D1QR5KJM2L9UTYMMKUBBQWY45YCMRGO8ZRGTQH7LXMZBUASLCTKX30IH0AYKYEPHO8HFHX8GAY5WM38YOSUX0HABYSH2PPBLRDRZIN5ANAQ3V8PLOZ6EHC0UI95EVJVYD1820T6J14HGX85NWFQET2NWOMSNUT0JW4LHMY90X094TEE9KXJXSNN6YPERFQW').base(2).substr(1).comb(23)

Probieren Sie es online!

Die lange Zeichenfolge ist die Nachricht als einzelne Base-36-Zahl (mit einem einzelnen vorangestellten 1-Bit, um die führenden Nullen zu erhalten), die dann zurück in binär konvertiert und jeweils 23 Bit gedruckt wird.

Sean
quelle
Sie können >>.sayund verwenden &{S/.//}, um Bytes zu speichern. Haben Sie darüber nachgedacht, stattdessen eine andere Basis zu verwenden?
Jo King
Ja, ich habe versucht, Base 65536 / Unicode zu verwenden, aber die Nachricht stößt auf einige verbotene Ersatzcodepunkte. Ich konnte das vermeiden, indem ich jedem Codepunkt einen festen Versatz hinzufügte, aber erstaunlicherweise stürzten einige der generierten Strings Emacs ein paar Mal ab. Es dauerte mehr Zeit, als ich mir leisten konnte, um die Probleme zu lösen. Ich werde das Problem wahrscheinlich später noch einmal untersuchen.
Sean
Es macht keinen Sinn, mehrere Byte-Zeichen zu verwenden, da dies die Anzahl der Bytes erhöht. 289 Bytes durch Implementieren meiner Tipps von oben und Verwenden der Basis 122 (um Wagenrückläufe zu vermeiden)
Jo King
2

Wolfram Language (Mathematica) , 383 Byte

StringPartition[Uncompress@"1:eJylVNsRwjAM44s92KBaBTZgAUZhZXqtHUuOWrgjfSRRHFlO4tyer/vjfb1clq0gHirZLRjby986hppcT5p+L3BmgJ3t4Ul4GsNyG++7YbaXLh0ZTPhXa4Sn+X/s9Qfk3Hx2cOaSIuNYaVu5laschvgzSqAjHeZBhilKgKBDEhw0upJRg+HOK4MyNC29sfbc3RV0VPDqeLiRTsG1ulExq1IitpunOa7asnYM9siDZ6eidUCkEzBOUbCkGIig4aTyUGBYWAX6W6aXIWGGI/HlhmsqzSU0QTZjkMVpaX5sBsm1OGKVg1qdjKP0EdyqZBRLhukn8DLBQav6kccgz8OKfgBzjj6Z",23]

Probieren Sie es online!

J42161217
quelle
2

Node.js , 333 Bytes

Gibt eine Binärzeichenfolge mit 1.679 Zeichen zurück.

_=>Buffer(")SI)=.);1K?>>>2333A3,93/I3>3)g33)AEAAI)5JQZJTddda3)*3*33+3,e)*e3)//0/1+)1C/7Cgggg3395)9)A3IY)h*IH),39+)995*)AA-)59Y)*O3Z,)//*)91**)A*-)Y+1)I11+)I1)/)5)Y*0?)+)I)-0Y)1@;_*7<gaE/a)Q7[*9HM+IY16I33)a1)*^.><I+S3.38I)*hY)7)a)Y)A,9*A5Y/A:9=9K:1I-=9)19I)9*329)GH<").map(x=>s+=(x-51&&x-41).toString(2).padStart(x-51?6:12,0),s='')&&s

Probieren Sie es online! (mit formatierter Ausgabe)


JavaScript (ES8), 413 Byte

Gibt eine Binärzeichenfolge mit 1.679 Zeichen zurück.

_=>atob('AsKoAFBQEiIlwpVVUk!!ABwo!DQ!Gg!V!Aw7g!!GHGHCi!yGjHChsK+w7vDr8K!!Q!Q!!g!/DgAHDs!AGGHDhiAgCGhjwprDu8Ovwr4!ABAw4AQAcK!MKDAD8GB8OAD!QCAQQMBAYYEAMQwABwpgAMQwBwoYEBAgEEBgEQDAIwoAgIMKAwoDCgMKABgDDgDAEdcKACAgAEHwAIXTCtgTDpMO+w6HDgcK4AsKDwrIFB8OkCgwINg!!A4IAB1FVTDoArCo!U!/CgAB/w4ADwoDDoAwAYDQBYMOMBmEUFEIkSMKARR!woQgAQB!MKUAHnDtA'.split`!`.join`AA`).replace(/[\s\S]/g,c=>c.charCodeAt().toString(2).padStart(8,0))

Probieren Sie es online! (mit formatierter Ausgabe)

Arnauld
quelle
2

Bubblegum, 275 236 Bytes

00000000: e006 8e00 e45d 0018 6988 6507 a228 f86f  .....]..i.e..(.o
00000010: f042 c62f d4d7 b99e 38bc 56c4 52e8 2630  .B./....8.V.R.&0
00000020: 8aaa 7252 d47d 5ef4 c96a 511f 6842 423f  ..rR.}^..jQ.hBB?
00000030: 4532 ca9f 22d3 1633 e0c4 665a d5dc 4e68  E2.."..3..fZ..Nh
00000040: 7b09 76ae 3c7e f9d4 fa4a 05e0 4163 c580  {.v.<~...J..Ac..
00000050: c585 a383 2396 4ca9 1f48 a4b9 744e 37c8  ....#.L..H..tN7.
00000060: 68c5 af23 645d 59a7 542a e6d1 23b9 3aba  h..#d]Y.T*..#.:.
00000070: f0e6 2738 dfd5 b0a3 c6a3 60bf c5b6 5ae6  ..'8......`...Z.
00000080: 7893 30a8 ae04 edf9 298b b777 4d56 285b  x.0.....)..wMV([
00000090: cb74 07cc 7a7b a399 3dc7 c6e7 b693 e715  .t..z{..=.......
000000a0: d908 876e 001f 7408 3c6a 5fcd 37cb 02c4  ...n..t.<j_.7...
000000b0: 93de 33c2 a11e 5bac cd12 d99a fac3 e0fa  ..3...[.........
000000c0: 5268 94f7 d640 0f73 cede f79d 821f 39d1  [email protected].
000000d0: dc49 ff06 6962 6c31 dc29 a077 01c3 7690  .I..ibl1.).w..v.
000000e0: 85ef bbec 31d7 5c7f f9fc 8c00            ....1.\.....

Probieren Sie es online!

Orthoplex
quelle
2

Bash + GNU-Tools, 351 Bytes

base64 -d<<<H4sIAPnNrVwCA6WUCRLDIAwDv8T+/3NNG4wvkTBTcisGSyA8xrcxj9Ds02F+Z7yuf3hnPyz0vYEGz+FG3IKBs+x3oL2PSh0TM/PnaGamft9nPUCew3uCp5RBWdRKGz+qNJn8qRKkkNaTBgeVIFXWOdi8VCaIeUnsfHo6TXpaFa3H5olf6J5MuIHLoEi0uKcRFCvEXG4xseglKzZg7kpYJSLMA3M7wXKR+/L2WiK0kvg+TDASLp6Co1KEVIlVmFzhCktRhBBDdSZYU1xKHrmDUllcWpNR/YNW2QNcHtF0rSySb0MXk/SDUgEwG5gfLvQDxuEdDo8GAAA=|gunzip

TIO

Nahuel Fouilleul
quelle
habe deinen Bash-Post nicht gesehen, bevor ich meinen gepostet habe - viel kleiner!
Noodle9
2

MathGolf , 223 220 Bytes

'06*"x·<×J× Ç×►B×ê\"@$↕!◙è0♥f░×→0×♠p└☺α?×└•×◙×P♣p¬è:×►∟××××←♦♠♣≥â☻┘A☺▄αp⌂r☻[║►×>◘×♦♦└:☻↑`×♥@@@@►►@♦↑ ☻♀◘☻♦☻☻├×å↑×╠×Ç!♠ 0♀◘↑◘☻♦◘×♠α♥â▼ÇA×└×◘` ×××▀≈}═14♦►►π0♀××°×α•×►×××☻×◘××└≈}_├↑♪↓×─0♫♥×××|××*××♪×Ç♠×└×××× ⌐¬╩↕◄○((×T☺"$à+

Probieren Sie es online!

Erläuterung

'0                push single character "0"
  6*              repeat 6 times
    "..."         push the magic string
         $        convert to ordinal
          à       convert to binary string
           +      pop a, b : push(a+b) (add the 6 zeroes)
                  below is the footer
            L/    divide into groups of 23 characters
              n   join array with newlines into string
maxb
quelle
Sie können das L/nin die Fußzeile verschieben, es sind also 220 Byte. Können durch Portierung der 05AB1E / Java-Antworten mehr Bytes gespart werden ( diese komprimierte Ganzzahl verwenden , in Base-3 konvertieren und alle 2s durch 0000s ersetzen )?
Kevin Cruijssen
@ KevinCruijssen schönen Fang! Ich wünschte, ich hätte mehr Funktionen zum Ersetzen von Strings, aber das ist momentan nicht Teil von MathGolf.
Maxb
Wie über eine Karte pro Stelle, die Karten 2zu ♫░╞? EDIT: Egal. Wie ich sehe, ist keine Basiskonvertierung (außer binär / hexadezimal) für die Konvertierung in Base-3 integriert?
Kevin Cruijssen
@KevinCruijssen Ich habe mir ein wenig überlegt, wie ich die Basisumstellung ändern soll. Ich brauche auf keinen Fall einen Befehl zum Konvertieren einer Binärzeichenfolge in eine Dezimalzahl und einen anderen zum Konvertieren eines binären Arrays in eine Dezimalzahl. Auf diese Weise kann ich einen anderen Befehl zur Basiskonvertierung einfügen (und die Idee war immer, eine allgemeine Basiskonvertierung in der Sprache zu haben).
Maxb
Sicherlich können Sie das auch +in die Fußzeile verschieben
Jo King
1

Perl 5 , 460 Bytes

printf"%023b",oct"0x$_"for qw/15400 141404 4444b2 555524 0 600 1a00 1a00 2a00 3e00 0 61c618 400190 68c61a 7df7df 0 80002 0 40001 7c001f 0 618718 404010 68639a 7df7df 0 81802 1800 41801 7c181f 1800 100804 81808 61810 18860 1980 18860 61810 81008 101804 201804 200808 101010 80060 60180 11d600 101000 107c00 10ba5b 1393f 5c3837 283b 10283f 102830 106c00 0 1c1000 1d4555 1c0154 140 7c00 1ff00 701c0 c0060 1a00b0 330198 228288 224488 22880 21080 20080 9400 3cfa78/

Probieren Sie es online!

Xcali
quelle
1

Python 2 , 336 Bytes

print bin(int('gVQAKCgJERLKqqkgAAAAAMAABoAADQAAKgAAfAAAAAMOMMQAGQ0Yw19998AAAAgAAgAAABAAB+AA+AAADDDjEBAENDHNffffAAAAIGAIAMAAQYAfgwPgBgAIBAIIGAgMMCAGIYAAzAAYhgDDAgIEAggMAiAYBEAQEEBAQEADAGAYAjrABAQACD4AELpbAnJ/cODcAUHZAoPyBQYEGwAAAAAcEAA6iqpwBVAACgAHwAA/4AHAcAYAMBoAsGYDMIoKIRIkQCKIAEIQAIAgAEoAPPp4'.decode('base64').encode('hex'),16))[3:]

Probieren Sie es online!

Gibt eine Folge von Bytes aus

TFeld
quelle
1

Java (OpenJDK 8) , 364 Byte

n->new java.math.BigInteger("in95mzupnpa2r0khpoepyql6ioqyn413avucdtfay6indx4wh9dehe3sn18klobtf4z9g9q17umqmwpegr2khb5eqinn7azl4jpfp2a8eui0xfrx5qwrou6gd65jh4ge3ls14k5lu7qrvmg6942ms29u5rb8fa6yrdhfoh5zoi9bdi7uh5ig0u0ff9kounth8sh357x7qox4m3oqviqsbrvakonbka4ahp21bgzi5v1akzzuqoncszhpabbru9q1uo2g11zr73iuyiqr5ikr69zn7cdv7e1lhd6ese9",36).toString(3).replaceAll("2","0000")

Probieren Sie es online!

Erläuterung: Zuerst musste n->new java.math.BigInteger(str,36).toString(2)nur eine Radix-36-Zahl in eine Binärzahl konvertiert werden, aber dafür waren neun zusätzliche Zeichen für führende Nullen erforderlich. Dann kam mir die Idee, einige Nullen als Zwei zu codieren. Eine Länge von vier Nullen scheint die Länge der Basis 36 zu minimieren, son->new java.math.BigInteger(str,36).toString(3).replaceAll("2","0000")

In der Diskussion unter dieser Antwort finden Sie Informationen zum Bugfix für führende Nullen von @KevinCruijssen

JollyJoker
quelle
Nett. Es ist beeindruckend kurz für Java!
Eric Duminil
1

[Python 2] , 345 Bytes

s=''
for c in")pG/K(K*j$h%kk$ppjGE&I6S6S5[5eCv~vw0x&z$wgqcde$e=G4G?G4eG0e:vv~w*G,gn$wy$uuuuG=G)I,G.I2G(I-eG(I)e-I0G+G+G(G)I*G*vI)G-w'I2y0w'I,vI)G*G)G+G(G*I+W+I+W,G*G(G*G*G*G/I,I+I,iq.G*G1G(e/g$c%sG)m%md~$M(},K(cO)K(eO)K(I)G(aE$M(G1c$hpoI,pG3K1e3eU/M*M,I.I*S,Q(y*y'hG(ng&j$j$G+hW/g'G/G,G1k.d$e$mN":c=ord(c)-35;s+=[bin(c-35)[2:],'0'*c][c<35]
print s

Ich habe die Länge von Strings von 0s als Byte ab chr (31) kodiert. Dann habe ich die restlichen 10101 als Binärzahlen von chr (70) bis chr (126) codiert. Binäre Zeichenfolgen, die nicht passten, wurden in kleinere Blöcke aufgeteilt.

Bearbeiten: Reduziert auf 326 Bytes. Danke Jo King

Bearbeiten: Ein Fehler im Code-Generator-Programm wurde behoben

Bearbeiten: Letzte Bearbeitung

Überraschungshund
quelle
Sie müssen den großen String nicht in oeiner Variablen speichern .
12.
1

Zsh , 577 Bytes

Probiere es online aus !!

S=fxxxxibxxdxxfyzzzyx1yxxxxxxxxyyywl2ij1xxhj1xxhixxxhi5iw2d3c2d2cxl2bxc2az2c2d2ax4x4x4x5wcxpxwdxp15m5w2d2d3c2cxfxhxc1xxc2c2y1xx4x4x4x5wc1f2ixj2kd1e2j15e2f5j2kb1h1hyc1f2gzd2d2fzaf2c1d2ej2b2gf2c1d2ed2d2f1dc1f1hzb1g2hya1h2hya1i1gzb1g1g1dc1l2ed2h2gbz2xx2ibzd1lbzb5jb1dx2xyx1x2fy2yy6x3d3e2a3ixxd2x2b1fxxd6b1fxxd2db1e2a2jwb3e1lb2xxzxxxxx1b3ixxxynxxeh5jf9hd3g3fc2k2eb2a1ix2da2b2g2b2cazxxdxzzazyzyzzezxz1ge1d1d1ge1i1ggyxxia3y4xy3z
for X in ${(s::)S};{case $X in
[a-w])V=$[##$X-96];printf 0%.s {1..$V};;[1-9])V=$[##$X-48];printf 1%.s {1..$V};;[x-z])V=$[##$X-119];printf $[10**$V];;esac}

Verwendete benutzerdefinierte Codierungslogik. Die Zeichenfolge Sist 421 Zeichen, könnte möglicherweise etwas mehr komprimiert werden. Buchstaben stehen a-wfür wiederholte 0s. Zahlen stehen 1-9für wiederholte 1s. Buchstaben x y zrepräsentieren 10 100 1000jeweils.

Vielleicht hätte ich es mit Byte-Pair-Codierung oder Ascii85 versuchen sollen .

roblogic
quelle
0

Bash , 702 697 Bytes

xxd -r -p<<X|xz -dc
fd377a585a000004e6d6b4460200210116000000742fe5a3e006d7010c5d
0018698865079cf6752c9e9a501a87a798b4844f9fcfdaaf87733b9d8239
48c816d860a938767f6cb81299f3e8a638effe3068c0e096a8949c81d706
7dff3ec44e5df185b3a48e5b5857724386e8c37cfbd5c856b12614ee78ec
c41df4db3aea71fd3a8fa474905609f78eb3fd66e246557965e4ab6dfd67
efbd9202f542ded9cf98a6401ee2d23afb2f544bd2442c6f428fd612397c
f2c6ec50847ddccc5832185e487712e5a7676b97058d7e485d5a3536166a
44ab3c689c93073cdda73b5306a83c4cd268e79db238bfa2d08ac912a578
75020bc7828342d5a62ce367aff7fd89290336128d119fa4272da2b2a79f
5973c71935af054f2d91c1bd3ea4847a3502d6dc8c975114dacf8a4de600
622d80986dbb0cd00001a802d80d00001b16e2a7b1c467fb020000000004
595a
X

Probieren Sie es online!

Noodle9
quelle
0

Ruby , 362 Bytes

puts"5r0afnfm8wyke8tfy1pwt7xnuaxyh3wodfp7bhsdufyw0xbdp1pumrz2xir652tuc0ss9oec8yad9vefivd66j126wybhefgk2lv38uqqiur11u26q275jk3h2ucithd59awpaenqpqi1pszh52179zw0ddqtbrvo6kyrrgv8c34pqrp83j8estjp63v29t4hqp9yg2hhzjlq1e9zqx6gh20n9lsttimz3nbq060ritrphxaru7quwmv3oujhd9xjddpbacq4bnpf270znhgto59yn0980itylf95pxw9x7rvkvi7mfql1sx46puo8rg4dq0".to_i(36).to_s(2).rjust(1679,?0)

Ganzzahl in Basis 36 geschrieben. Es gibt sicherlich eine effizientere Möglichkeit, die Ganzzahl zu komprimieren, z . B. mit zliboder base64.

Probieren Sie es online!

Eric Duminil
quelle
350 Bytes, wenn Sie: (1) "% b" anstelle von to_s zum Formatieren verwenden, (2)? 0 * 6 voranstellen, anstatt rjust aufzurufen
GB
0

[C ++ (VC ++) (aber auch mit gcc getestet)], 585 Bytes

#define l(x,y)for(int x=0;x<y;x++)
void f(){const char*a="02A800505012Y595Y240U180YD0Y1A0Y540YF80V61C618800321A3186BEFBEF80X10Y40W20YFC001F0X1861C620200868639AFBEFBE0W40C0100180Z83003F0607C00C001008041030101860400C430Z19800310C018604040804101804403008802020808080800600C030047580080800107C002174B604E4FEE1C1B80283B20507E40A0C08360U3820Z751554E00AA0Z140ZF80Z7FC00380E00C0060340160CC06611414422448804510Z8420010040Z940079F4F0";int x=1679;l(i,365){int d=a[i],c=0;d-=(d>47&d<58)?48:((d>64&d<71)?55:0);if(d>70&d<91)c=91-d,d=a[i-1];for(c;c>=0;c--)l(j,4){if(x--)cout<<(int)((d&(8>>j))>0);}}}

Probieren Sie es online!

ungolfed version (fehlt die Pause nach dem 1679. Element und geht bis zum 1680.):

#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
    const char arecibo[]="02A800505012Y595Y240U180YD0Y1A0Y540YF80V61C618800321A3186BEFBEF80X10Y40W20YFC001F0X1861C620200868639AFBEFBE0W40C0100180Z83003F0607C00C001008041030101860400C430Z19800310C018604040804101804403008802020808080800600C030047580080800107C002174B604E4FEE1C1B80283B20507E40A0C08360U3820Z751554E00AA0Z140ZF80Z7FC00380E00C0060340160CC06611414422448804510Z8420010040Z940079F4F0";
    int i = 0,j;
    while (i<sizeof(arecibo)-1)
    {   
        char digit = arecibo[i];
        int count=0;
        if (digit >= '0' & digit <= '9')
        {
            digit -= '0';
        }
        else if (digit>='A'& digit<='F')
        {
            digit -=  'A'-10;
        }
        else if (digit > 'F'&digit<='Z')
        {
            //digit does not contain any valid hex digit in this case
            count = 'Z' - digit+1; //digit = Z means repeat 2 more times...
            digit = arecibo[i - 1];
        }
        for (count; count >= 0; count--)
        {
            for (j = 0; j<4; j++)
            {
                cout << (int)(((digit)&(8 >> j))>0);
            }
        }
        i++;
    }
    return 0;
}

als erklärung: ich habe die 73 zeilen der beispielausgabe zu einer langen zeile verkettet. Ich habe sie hexadezimal codiert, wobei die Bitreihenfolge msbfirst ist (mit diesem Programm https://github.com/Marc-Bender/longBinaryStreamToHex/releases/download/addedErrorCode-4/longBinaryStreamToHex.exe ). Ich habe die Ausgabe davon um ungefähr 70 verkürzt hexadezimale Ziffern, bei denen die Buchstaben 'G' - 'Z' als Zeichen verwendet werden, um die letzte Ziffer eine bestimmte Anzahl von Malen zu wiederholen (Z = 2mal, Y = 3mal ...), der Rest sollte für Code-Golfer relativ selbsterklärend sein . Missbrauch des Präprozessors zum Verkürzen von Schleifen, Missbrauch des ,Operators und dergleichen.

Das Ausgabeformat ist ein ununterbrochener Strom von 1679 0/1-Werten.

der bender
quelle
bevor jemand fragt, ob die const mit VC ++ kompatibel ist (womit die Hauptentwicklungsarbeit gemacht wurde)
der bender
@ceilingcat Ich denke, Sie können sogar noch mehr verkürzen, indem Sie Ihr Include in den Header-Abschnitt einfügen ...
der Bender
554 Bytes
Ceilingcat
0

Perl 6 , 348 Bytes

{"000000"~:36<5r0afnfm8wyke8tfy1pwt7xnuaxyh3wodfp7bhsdufyw0xbdp1pumrz2xir652tuc0ss9oec8yad9vefivd66j126wybhefgk2lv38uqqiur11u26q275jk3h2ucithd59awpaenqpqi1pszh52179zw0ddqtbrvo6kyrrgv8c34pqrp83j8estjp63v29t4hqp9yg2hhzjlq1e9zqx6gh20n9lsttimz3nbq060ritrphxaru7quwmv3oujhd9xjddpbacq4bnpf270znhgto59yn0980itylf95pxw9x7rvkvi7mfql1sx46puo8rg4dq0>.base(2)}

Basiert auf Benjamin Urquharts Java-Lösung .

Verwendet einen geraden Stream aus 0 und 1 Zeichen. Der unten stehende Link enthält Code, um die Ausgabe zu verschönern.

Probieren Sie es online!

bb94
quelle
0

Tcl , 366 Bytes

binary scan [binary decode base64 QBUACgpIRKSpqkoCAAAAgAEAsAAAWAAAKgAAHwAAAGA4hhEATFiMYX3f9wEAAAgAIAAAAAQA8AOADwAAGIZjBAQQFsZZ3/d9AAAAAgMIgAEAwQD8YOADMAAIECAIDAgYBgIwwgCAGQCMMIBhICAQIAgYIAIMEAEEBAEBAQFgAAMMIK4BEBAACD4AhC5tICd/h4MdQMFNoOAnUDAQbAAAAAAcBACuqCoHUAUAKADwAQD+A8ABBzAABiyABjNghigoQiQSAaIIACEEgAACACkAni8P] b* z
puts [join [regexp -all -inline .{23} $z] \n]

Probieren Sie es online!

Wolfhammer
quelle
0

C ++ (mit Gnu-Bibliothek mit Mehrfachgenauigkeit), 359 Bytes

Dies gibt den String als eine Zeile aus. Es verwendet '1' für 0 und '0' für 1: /

Es liest einfach die eingebettete Zeichenfolge als Basis 62 und druckt sie als Basis 2.

Verwenden Sie g++ -g arecibo.cpp -lgmp -lgmpxxzum Kompilieren und Link

#include<gmpxx.h>
main(){mpz_out_str(stdout,2,class_mpz("vuXXKBYAu1hPsJPbFSf49akyFd0bjJbMIV3upYndU8kYFPsXcpRUK6c9qnzLfORxkxGL7ZfoSwgSxFbCrydjHL603QcxexopAzoYAcAyEiENJJU2vQA2zM8NDbeY6nHgL8rfFoPJaclwxx6TeKeOEknEQHzp7C4la3o8xijBQLOVweFZ1CI9dXy2VQhgnuwF5FeW5mQ909pRMxhn6G3RJ1QEtkS7oGMZYHM03fh4fj391IoYLGVv3iUVuTrV2ghz9CUa9hfGYrdhGoVE2w1inYalYl",62).get_mpz_t());}
CSM
quelle
Ich konnte das nicht an die Arbeit , bis ich ersetzt class_mpzmitmpz_class
ceilingcat
0

Perl 6 , 276 Bytes

:122[q{3tD!gLF['u#.K>'uCG8cvJZ[on1Z<D!	`Fhqq-_V'"qQn+n0h\:b,vXjo&1TMFaW;wvX;eUS
(ueelNSu,y93\kjGI&?UU/38 :ndi4Y5cyC+ME\g7LWaS;QLjtD^L+aVd(XW%gy\8'Eqk-+f72S5J?(r5!m^5px T[Z'3&jd0lZ'/x%#(}.ords].base(2)~~S/.//.say

Probieren Sie es online!

Ausgänge als Serie von 1679 0s und 1s. Sie können es in verschiedenen Zeilen haben, indem Sie .comb(23)>>vor demsay hinzufügen .

Erläuterung:

:122["...".ords]                     # Convert the string from base 122
                .base(2)             # To base 2
                        ~~S/.//      # Remove the leading 1
                               .say  # And print

Ich kann wahrscheinlich Bytes sparen, indem ich die Ausgabe stattdessen als 1679-Bit-Ganzzahl verwende oder die Bit-Darstellung umkehre.

Scherzen
quelle
0

C ++ (gcc) , 748 Bytes

#define l(X,Y)if(z[i]==#X[0])z.replace(i,1,#Y);
void f(){std::string z = {"ab1eeedala1ebeeheal1mmma1fa1g1eeeeeeea1a1alddhgdbcdgdacedgdacedgdeeedgdndgddhgqiafbcag1dbfa1blceafafbcegcinnnlddhgmddegddhgb1ddelcidbnlddhgqqiafag1hedeblcebcaf1acegcinnnlddhgmhcdegdacdagb1bfda1lcibfhcildacdaga1d1d1almhcheagbqch1blhcmbqgdacachghcmbqgbqch1blmh1d1aga1hfd1aledcd1aledeheaga1heheblmdbqgbcdchga1af1efdga1hedbla1bndala1b1f1ea1fflh1aia1acccl1f1bibff1ldeebf1fla1h1ebfccla1h1ebfbla1bffdalddhgaibedblaieemeeeeelaideeeealdh1ehldcidalhcccidlbihf1hlafdafbgacedefblfachfacagemebeemagema1ma1magbememhgbeb1b1hgbedehghea1edalfcacieacca0"};for(int i=0;i<1751;i++){l(q,cb)l(n,fi)l(m,ae)l(i,c1)l(h,ba)l(g,0l)l(f,0c)l(e,01)l(d,bb)l(c,11)l(b,aa)l(a,00)l(l,\n)printf("%c",z[i]);}}

Probieren Sie es online!

Durch Ersetzen der am häufigsten verwendeten Teilzeichenfolge durch ein neues Zeichen, bis es sich nicht mehr lohnt

r3dapple
quelle
735 bytes
ceilingcat
0

Python 3 , 331 Bytes

exit(''.join(bin(i)[3:]for i in b'`UP@JB`IDQKJjjd`@@@@@L@@Ah@@CP@@J`@@_@@@@@LNLLP@FPtXpu}}}|@@@@`@@`@@@A@@A~@@~@@@CCCcDA@DMCGM____@@@@HF@H@L@@PX@_`pO`A`@HA@HHF@`LLB@FHX@@s@@Xa`CC@`HD@``L@b@XAD@PDDA@PD@C@F@X@ck@A@P@BCx@DKi[@gI\x7f\\NC\\@TGY@hOrAPXDFp@@@@@\\D@@zbjipAU@@B`@Gp@@\x7fx@G@\\@X@LAh@lFXCLHhJHQHdPBJH@DHP@H@`@Dh@OOix')[1:])

Probieren Sie es online!

Jitse
quelle