Dies ist der Begleitthread für die Hauptaufforderung zum Entschlüsseln des Quellcodes . Wenn Sie der Meinung sind, dass es Ihnen gelungen ist, eine der Antworten der Polizei zu entschlüsseln, sollten Sie Ihre Lösung als Antwort auf diesen Thread posten.
Zur Erinnerung, Sie haben einen Versuch, jede Einsendung zu knacken. Ihr Cracking-Versuch wird eine unverschlüsselte Version des Quellcodes sein. Wenn Ihre Vermutung mit der Beschreibung übereinstimmt (gleiche Zeichen, Ausgabe und natürlich Sprache) und Sie die erste richtige Vermutung sind, dann gewinnen Sie einen Punkt. Es ist wichtig zu beachten, dass Ihr Programm nicht exakt mit dem Original übereinstimmen muss, sondern einfach dieselben Zeichen und dieselbe Funktionalität verwenden muss. Dies bedeutet, dass es mehr als eine richtige Antwort geben kann.
Der Räuber mit den meisten Punkten (erfolgreiche Risse) gewinnt.
Bestenliste
Zu viele Lösungen
- Martin Büttner: (Python 3, 16, matsjoyce) , (CJam, 15, Ypnypn) , (Mathematica, 29, Fox Wilson) , (JavaScript, 15, Caridorc) , (CJam, 52, user23013) , (Pyth, 11, isaacg) , (PHP, 22, Kenorb) , (PHP, 13, Kenorb) , (Ruby, 17, Doorknob) , (PHP, 49, Bwoebi) , (Mathematica, 35, Tally) , (GolfScript, 13, Peter Taylor ) , (JavaScript, 25, Cris) , (JavaScript, 29, Cris) , (JavaScript, 26, Cris) , (Bash, 33, Debasis) , (JavaScript, 10, Cris), (Lua, 28, ChipperNickel) , (Mathematica, 18, Arcinde) , (JavaScript, 30, Qwertiy) , (CJam, 13, user23013) , (JavaScript, 41, Ismael Miguel) , (Ruby, 38, Doorknob) , (Marbelous, 36, es1024) , (PHP, 33, Ismael Miguel) , (JavaScript, 29, Joe) , (JavaScript, 28, Shawn Holzworth) , (Ruby, 35, Histokrat) , (CJam, 19, Ypnypn) , (Ruby, 17, Stephen Touset) , (JavaScript, 36, MegaTom) , (JavaScript, 24, fogcityben) , (Python 3, 21, Reticality) ,(JavaScript, 10, Jamie Barker) , (JavaScript, 15, Jamie Barker)
20 löst
- Feersum: (Python 3, 44, Sp3000) , (C, 70, es1024) , (MATLAB, 41, COTO) , (Brainfuck, 118, Sp3000) , (C, 30, Ethiraric) , (C, 28, Mig) , (Python 3, 46, hosch250) , (Java, 70, Rodolvertice) , (C, 29, imallett) , (Java, 226, nhahtdh) , (Little Man Computer, 63, The Wolf) , (Python 2, 89 , Beta-Zerfall) , (Python 2, 41, Schlammfisch) , (C, 63, es1024) , (C ++, 192, Arcinde) , (Java, 108, durron597) , (C #, 604, eshansingh1) ,(C, 44, Art) , (Java, 134, Olavi Mustanoja) , (Bash, 47, Vi.)
15 löst
- user23013: (CJam, 18, Ypnypn) , (JavaScript, 26, hsl) , (CJam, 12, COTO) , (PHP, 23, bwoebi) , (PHP, 54, Steve Robbins) , (CJam, 32, Dennis) , (CJam, 19, Martin Büttner) , (Bash, 23, Wolf) , (Rubin, 33, Doorknob) , (CJam, 34, Dennis) , (JavaScript, 82, Ismael Miguel) , (PHP, 80, Ismael Miguel) , (QBasic, 43, DLosc) , (QBasic, 42, DLosc) , (ECMAScript, 90, Cris)
10 löst
- zimperliches Ossifrage: (Python, 44, Caridorc) , (PHP, 52, PleaseStand) , (Befunge-93, 17, user23013) , (BBC BASIC, 187, Beta Decay) , (C, 43, Allbeert) , (Ruby, 58, Rodolvertice) , (JavaScript, 32, hsl) , (PHP, 33, Kenorb) , (Python 2, 16, imallett) , (PHP, 53, PleaseStand)
- Sp3000: (Python, 154, Fox Wilson) , (Python, 48, kgull) , (Python, 68, horns) , (Python 2, 38, FryAmTheEggman) , (Python 2, 57, FryAmTheEggman) , (Python, 74, xnor) , (JavaScript, 66, Cris) , (JavaScript, 70, Cris) , (Python 2, 37, Schlammfisch) , (Python, 55, FireFly)
7 löst
- grc: (Python 2, 61, FryAmTheEggman) , (Perl 5, 47, chilemagic) , (Python, 69, Sp3000) , (Perl, 39, GentlePurpleRain) , (Perl, 36, squeamish ossifrage) , (Python 3, 110 , Sp3000) , (C, 53, FireFly)
5 löst
- hsl: (CoffeeScript, 25, Martin Büttner) , (Golfscript, 20, Josiah Winslow) , (Lua, 18, user3155415) , (Python, 54, kgull) , (Arithmetic, 31, Cris)
- PleaseStand: (PHP, 14, Tryth) , (C ++, 56, hosch250) , (PHP, 21, Kenorb) , (QBasic, 37, DLosc) , (JavaScript, 46, FireFly)
4 löst
- bwoebi: (PHP, 52, Kenorb) , (PHP, 30, Tryth) , (PHP, 27, Kenorb) , (PHP, 44, Kenorb)
- FireFly: (JavaScript, 94, Shawn Holzworth) , (Python, 34, Sp3000) , (Brainfuck, 39, Mig) , (JavaScript, 69, Shawn Holzworth)
3 löst
- Optimierer: (JavaScript, 61, jsh) , (JavaScript, 47, palerdot) , (JavaScript, 42, Shawn Holzworth)
- es1024: (PHP, 46, Ismael Miguel) , (Python-Shell, 15, xnor) , (Python-Shell, 21, xnor)
- DLosc: (Python, 41, Sp3000) , (Ruby, 37, Rodolvertice) , (CJam, 14, User23013)
2 löst
- xnor: (Python 3, 37, matsjoyce) , (Python 2, 29, Dennis)
- Daniel Wagner: (Haskell, Größe 34, Petr Pudlák) , (Haskell, 42, stolzer Haskeller)
- nneonneo: (Python, 41, Sp3000) , (C, 43, FryAmTheEggman)
- Kunst: (C, 51, es1024) , (C, 48, es1024)
- n̴̖̋h̴̖̋ã̷͉h̷̭̿d̷̰̀ĥ̷̳: (Java 6+, 101, Rodolvertice) , (Java, 97, Olavi Mustanoja)
1 lösen
- Ypnypn: (Python 2, 50, Geobits)
- Matsjoyce: (Python 3, 12, Xnor)
- user1354557: (Python, 56, Fox Wilson)
- Dennis: (CJam, 20, Martin Büttner)
- isaacg: (Pyth, 71, FryAmTheEggman)
- ConMan: (SAS, 17, Benutzer 3490)
- Arcinde: (JavaScript, 285, Beta-Zerfall)
- Shawn Hotazworth: (Javascript, 82, TrungDQ)
- nooodl: (Ruby, 49, Türklinke)
- Bhante Nandiya: (Python 3, 37, Sp3000)
- Geobits: (APL, 17, user23013)
- Histokrat: (Ruby, 23, MegaTom)
- ProgramFOX: (Python, 13, Reticality)
quelle
Antworten:
CJam, Größe 20, von Martin Büttner
Probieren Sie es online aus.
Wie es funktioniert
Den Code knacken
Die gewünschte Ausgabe
2.956177636986737
ist entweder ein Double oder ein Double, gefolgt von einem Long.Wenn Sie nur die Zeichen in verwenden
"Stop, Hammer time!"
, gibt es vier integrierte Operatoren, die nicht ganzzahlige Doubles zurückgeben:mS
, welches istasin
ma
, welches istatan2
me
, welches istexp
mt
, welches isttan
Alle von ihnen enthalten ein
m
, so dass wir höchstens drei von ihnen verwenden können. Es gibt nur einsS
und einsa
.Alle diese Operatoren benötigen Eingaben und
ma
sind die einzigen, die zwei Eingaben verbrauchen. Wir haben nur drei Möglichkeiten, Longs zu pushen:"...",
, was die Länge der Saite drückt (streng unter 18).H
, was 17 drückt....!
, was das logische NICHT von drückt...
.Wir haben keine Möglichkeit, etwas Falsches zu pushen
...
, so dass die letzte Option immer 0 pusht .Die Ausgabe beginnt oder endet nicht mit
17
oder0
. Da 15 Dezimalstellen die übliche Anzahl von Stellen für ein Double sind, schien es wahrscheinlich, dass die Ausgabe ein einfaches Double war.Angenommen, der Code muss in eine der folgenden Kategorien fallen:
<Long> <mS|me|mt>{1,3}
<Long> <mS|me|mt>{x} <Long> <mS|me|mt>{y} ma <mS|me|mt>{z}
.i
) oder Rounding (mo
) für ein Double angewendet wird.Im zweiten Fall
x + y + z
ist entweder 1 oder 2 und einer der Longs ist 0 oder 17.Der Rest war im Grunde rohe Gewalt. Nach ein paar Versuchen,
zurückgekehrt
9
, das heißterzeugt die gewünschte Ausgabe.
Alles, was übrig bleibt, ist, alle bis auf 9 Zeichen aus der Zeichenfolge zu entfernen. Leerzeichen sind Noops und
i
ein Noop bei Longs. Dies"petStorm!"
ist eine der möglichen Optionen.quelle
mr
vorher die Länge genommen. Nicht, dass Sie das irgendwann nicht auch herausgefunden hätten. ;)Python 3, Größe 12, von xnor
Tut nichts (Ausdruck erzeugt ein leeres Tupel, das nicht gedruckt wird). Dies funktioniert aufgrund der Kurzschlussauswertung.
quelle
()
.print
.bciprt
wird niemals ausgeführt, daher wird niemals ein NameError erzeugt.Python, Größe 74, von xnor
Na das war ein Spaß. Vielen Dank an FryAmTheEggman, hosch250 und isaacg für Anregungen / Hilfe.
quelle
list(\nprint(range is range)for aacdeeeeehmppprrrrssvwy in\noct(int is int))
.Python 2, Größe 50, von Geobits
Ausgänge 42.
quelle
print 2**2**2**2/2**2**2/2**2**2/2-2**2**2*2**2-22
, aber es ist überhaupt nicht überraschend, dass mehr als eine Option richtig ist.GolfScript, Größe 13, von Peter Taylor
Teste es hier.
Eine andere, die ich nur mit großer Hilfe von Sp3000 geknackt habe. Vielen Dank!
So kamen wir dorthin. Sp3000 bemerkte eine Reihe von Läufen von fortlaufenden Nummern in der Ausgabe:
Ausgehend davon gingen wir davon aus, dass dies eine zunehmende Reihenfolge war, die nur eine mögliche Aufteilung der verbleibenden Zahlen zuließ:
Das sind 23 Zahlen, ein starker Indikator für die 22-fache Wiederholung des Blocks sowie für das Beenden des Blocks mit
.
(oberes Stapelelement duplizieren), sodass das vorherige Ergebnis auf dem Stapel zurückbleibt und die endgültige Iteration angezeigt wird der Stapel zweimal. Das ist22,{____.}/
.Wenn wir uns nun die Lücken ansehen, stellen sich diese als 4. Potenzen heraus (was schön ist, weil wir
4
und haben?
). Genauer gesagt sind sie die vierte Potenz des Index der aktuellen Zahl. Als nächstes haben wir uns angesehen, welche Indizes eine Lücke geschaffen haben:In binärer Form sind das
Sie haben alle das dritte Bit gesetzt, was bedeutet, dass der Index wahrscheinlich nur bitweise gesetzt ist
4
(was wieder schön ist, weil wir einen anderen4
mit.
und ein haben können&
). Dies funktioniert besonders gut, da diese Operation entweder0
oder ergibt4
, und wenn wir dies als Exponenten verwenden, erhalten wir entweder1
eine vierte Potenz, was genau das ist, was wir brauchen. Also lassen Sie uns das zusammenfassen:Hier ist was der Block macht:
Jetzt blieben zwei Probleme übrig: Wir hatten eine Streuung, die
,
wir noch nicht verwendet haben, und die erste Iteration ist ein Sonderfall, da es von einer vorherigen Iteration keinen Wert gibt, den wir bei der Begegnung ergänzen könnten+
. Wir fanden das dank eines unabhängigen Kommentars von User23013, der beiläufig erwähnte, dass GolfScript mit einer leeren Zeichenfolge auf dem Stack beginnt (wenn STDIN nichts enthält). Wir könnten also,
gleich zu Beginn die andere verwenden , um diese Zeichenfolge in eine zu verwandeln0
, was genau das war, was wir als Start der Iteration brauchten.quelle
Python 3, Größe 16, von matsjoyce
quelle
Ruby, Größe 17, von Doorknob
Das hat sehr viel Spaß gemacht. Vielen Dank an Sp3000, der mir dabei geholfen hat! Und ich habe gelernt, dass
%r?...?
Literale beliebige Begrenzer haben können. :)quelle
print
, nur um siep
für den Druck,%r
für Regexes undi
für den Vergleich zwischen Groß- und Kleinschreibung aufzuteilen.PHP, Größe 49, von Bwoebi
Das war absolut mental .
Es muss
ziemlich schnell, an welchem Punkt ich etwas brauchte, das
-6
nach dem Komma gibt, nachdem ich$++$++$++$+=$~main$2
gegangen war.Der Haupt Haken ist , dass
$a
,$m
und$i
sind alleNULL
zu verwenden, da sie indirekt in veränderlichen Variablen , Mittel , die sie alle auf die gleiche Variable. PHP scheint jedoch einige seltsame Dinge zu tun, um variable Variablen aufzulösen. Mit normalen Variablen können Sie Dinge tun wiewelche druckt
4
(die2
wird zugewiesen$a
und dann zu sich selbst hinzugefügt). Aber wenn ich dasselbe mit variablen Variablen mache:Ich bekomme
2
, weil jetzt die erste$$a
vor der Zuordnung zu bewerten.Am Ende habe ich es geschafft, eine Reihenfolge zu erzwingen, indem ich ein paar Inkremente auf die RHS von gesetzt
+=
habe, die vor dieser Additionszuweisung ausgewertet werden mussten. Auf diese Weise kam ich zu5
dem , was ich dann nur ein bisschen ergänzen konnte. Trotzdem ... sind einige mysteriöse Dinge im Gange, und ich habe keine Ahnung, warum die Hälfte der Dinge, die ich versucht habe, funktionierte und nicht funktionierte.quelle
print@substr(new exception,~$$mn+=2+$$a+++$$i++);
main
in der Zeichenfolge waren, Sie viel irreführen. Auch eine eher ungewöhnliche Methode zum Extrahieren{main}
, denke ichmain
hat verleiten mich nicht wirklich, nach Spekexception
,new
undsubstr
. Ich dachte, das wären nur Variablennamen. Ich brauchte ein wenig, um variable Variablen zu verwenden, und verbrachte dann die meiste Zeit damit, eine Reihenfolge von Operationen zu finden, die tatsächlich eine ergeben würde,5
die ich ergänzen könnte, ohne einen anderen Satz von Klammern zu verwenden.exception
war klar, dass hier streunende Charaktere herumliegensubstr
undnew
herumliegen. Es war buchstäblich das erste, was ich sah, als ich anfing, daran zu arbeiten.Ruby, Größe 38, von Doorknob
Ich bin mir ziemlich sicher, dass dies bei weitem nicht die ursprüngliche Quelle ist. Es ist trotz der Verwendung deterministisch
rand
.Hier ist, wie dieser funktioniert.
$><<
wird nur ausgegeben.$pece60
und$win
sind undefinierte globale Variablen, die daher gerecht sindnil
(und es mir ermöglichten, einige fremde Zeichen loszuwerden).!$pece60
macht eintrue
undto_s
gibt die Zeichenfolge"true"
.Lange habe ich versucht, ein
2
oder-2
zu bekommen, um darauf zuzugreifenu
, aber dann wurde mir klar, dass ich einfach das nehment
und.succ
(essor) anrufen konnte, um ein zu machenu
.rand
mit einemnil
Parameter wird ein zufälliger Gleitkommawert im Intervall [0,1) zurückgegeben. Wenn Sie Floats zum Indizieren in Strings verwenden, werden diese auf Ganzzahlen gekürzt, sodass immer das erste Zeichen zurückgegeben wird.Schließlich hatte ich ein Ersatzpaar,
[]
also habe ich einfach alles darin eingewickelt, denn zum Glück ist alles ein Ausdruck in Ruby.Danke an Sp3000 für die Ideen im Chat.
quelle
C, 51 von es1024
Nach 20 Jahren C-Programmierung habe ich heute etwas über hexadezimale Gleitkommakonstanten gelernt.
quelle
Rubin, 45 (Histokrat)
Woohoo! Dies ist mein erster Riss bei einem Code-Golf-Problem, und ich habe nicht genug Repräsentanten, um den ursprünglichen Beitrag zu kommentieren. Ich habe den verwendeten Trick sofort erkannt, da ich ihn im Produktionscode häufig verwendet habe. Es dauerte ungefähr 5 Minuten, um den größten Teil der Struktur herauszufinden, und ein paar Stunden, um die vollständige Antwort zu finden.
Erläuterung:
%q[]
ist eine alternative Methode zum Erstellen von Zeichenfolgen. Klammern und geschweifte Klammern können ebenfalls verwendet werden.String#to_i
in Ruby akzeptiert Zahlen in einer beliebigen Basis von 2 bis 36. Das erste Zeichen in der Zeichenfolge, das nicht Teil der Zahl ist, wird ignoriert, sodass zusätzliche Zeichen nach dem Leerzeichen "weggeworfen" werden können.Und hier ist der Code, mit dem ich es geknackt habe:
So können Sie ein NP-Problem in ein Rätsel einbetten. Ich wurde gründlich von Nerds beschnitten. Gut gemacht!
quelle
p
vor dem Ausdruck verschoben . Vermutlich können die verbleibenden Zeichen verwendet werden, um die Konstanten zu bilden, wie Sie es getan haben.p %q[zyfnhvjkwudebgmaclrsx].to_i(36)/51074892
ich weiß , dass ich meinen eigentlichen Krack Versuch brach aber :)Python [any] Shell Größe 44, von Caridorc
Ich bin mir sicher, dass mehr dahinter stecken sollte, aber da dies
__name__
gleichbedeutend ist,__main__
wird das vierte Zeichen "a" ausgewählt und der Rest der Zeile wird nie ausgewertet.quelle
[__name__ for ___name__ in range(1,4)][2][3]
Perl, Größe 36, von zimperlichem Ossifrage
Noch eine schwierige Frage.
quelle
CJam, Größe 13, von user23013
Teste es hier.
Von Hand gelöst, so:
Zunächst einige Hintergrundinformationen für Nicht-CJammer:
CEGIK
werden alle Variablen, die vor-initialisiert werden12
,14
,16
,18
,20
, respectively.s
konvertiert das oberste Stapelelement in eine Zeichenfolge.f
ist ziemlich magisch. Für die Zwecke dieser Antwort ist die vereinfachte Version dass, für ein Arraya
, einen anderen Wertb
und einem Operatorg
, die Sequenzabfg
abbildetg(_,b)
aufa
(wobei jedes Elementa
geht in den_
Schlitz)./
ist Teilung und Aufteilung von Arrays (unter anderem).*
ist Multiplikation und Array-Wiederholung (unter anderem).%
ist Modulo und eine seltsame Operation, die in der Formad%
für Arraya
und Integerd
jedesd
Element vona
(wie Pythons Slice mit Schrittweited
) annimmt .#
ist Potenzierung (unter anderem).,
wandelt Zahlen in Bereiche (von0
bisn-1
) um und gibt die Länge eines Arrays zurück.Okay, das ist aus dem Weg ...
Es war ziemlich offensichtlich, dass wir
,
eine Zahl in einen Bereich umwandeln mussten, da der einzige andere Weg, ein Array zu erhalten, darin bestanden hätte, eine größere Zahl zu erstellen und in ein Zeichenarray mit zu verwandelns
- aber dann hätten wir nichts tun können weitere Arithmetik darauf. Und wir brauchen ein Array, um etwas mit demf
s zu tun .Ich habe zuerst angenommen, dass die
f
s mit#
und verwendet werden%
, aber das würde bedeuten, dass wir eine Zahl um 90 benötigt hätten, um am Ende die richtige Anzahl von Ziffern zu erhalten. Und das erklärte auch nicht, was ich tun solltes
, und da die Antwort wirklich golferisch aussah, bezweifelte ich, dass user23013 einfachs
irgendwo ein effektives No-Op anhängt, um Leute abzustoßen .Also dachte ich mir, vielleicht hält er die Zahlen nicht einmal klein
%
, sondern baut stattdessen ein Array von riesigen Zahlen auf, verkettet ihre String-Darstellung mits
, wählt dann aber nur ein ungerades Stück daraus aus%
. Also habe ich ein bisschen mit folgendem Framework rumgespielt:(Das können Sie nicht
_f/
zuerst tun , da dies für mindestens die ersten 12 Elemente Null ergeben würde.)Wo
_
sind einige Permutation der Variablen. Ich habe nicht alle ausprobiert, bevor mir langweilig wurde, und das Hauptproblem dabei war, dass die resultierende Ziffernfolge wie immer viel zu lang war.Irgendwann kam mir der Gedanke, dass wir keinen so großen Bereich (dh das Produkt aus zwei Zahlen) benötigen würden, wenn wir stattdessen
*
die resultierende Zeichenfolge mit dem wiederholen würden. Aufgrund der Nichtübereinstimmung der Parameter von*
und%
würde dies keine Wiederholung im Ergebnis ergeben:Dies ergab Ergebnisse von einer Länge, die sehr nahe an dem lag, wonach ich suchte. Ich hätte eigentlich alle 240 ausprobiert, aber ziemlich schnell (dritter oder vierter Versuch) bin ich darauf gestoßen
was ergibt
Und ich dachte, eine Übereinstimmung mit den ersten sechs Ziffern wäre kein Zufall. Die Frage war also, wie man es neu anordnet, ohne die eigentliche Berechnung zu stören:
K
weil das insgesamt verschiedene Ziffern aussuchen würde.C
oderI
weil dies die Zahlen ändern würde, die sich aus den beiden Kartenoperationen ergeben.G
, ändert sich nur die Anzahl der Wiederholungen, was nur die Länge des Ergebnisses ändert. (Was gut ist.)E
, ändert sich der Bereich des Arrays, aber der Bereich beginnt immer noch mit[0 1 2 3 ...]
, sodass die Berechnung davon nicht beeinflusst wird. Dies würde sich auf die Länge der von zurückgegebenen Basiszeichenfolge auswirken. Diess
würde auch bedeuten, dassK%
bei zusätzlichen Wiederholungen andere Ziffern ausgewählt werden.Also habe ich gerade versucht zu tauschen
E
undG
und voila:Zusammenfassend ist hier, was der Code tut:
quelle
APL, Größe 17, von user23013
Ich habe viel zu lange versucht, das zu knacken. Es wäre wahrscheinlich schneller gegangen, wenn ich gewusst hätte, dass APL reinkommt.
Probieren Sie es hier aus
quelle
Pyth, Größe 11, von Isaacg
Das ist ein böser Bug-Missbrauch. Dies kompiliert zu:
Der relevante Fehler ist, dass anstelle von
\\
kompiliert wird , wodurch Sie Pyth in einen String kompilieren können."\"
"\\"
quelle
Pprint
seinprint
, oder zumindestpprint
?Python, Größe 69, von Sp3000
Das war hart...
quelle
print(sum(map(ord,str((dict(list(((str(),str(dict())),))),list())))))
, aber offensichtlich würden viele verschiedene Permutationen von Schlüsselwörtern funktionieren.Python 3, 37 Bytes, von Sp3000
Peinlicherweise war es bei weitem das Schwierigste, die Zeichenfolge in Bytes umzuwandeln. Ich musste darauf schlafen, und in der Nacht wurde mir klar, dass es ein buchstäbliches Byte ist!
quelle
PHP, 53, von PleaseStand
Hat es endlich geknackt:
Die Lösung kam ziemlich schnell, als ich bemerkte, dass die Sequenz aus alternierenden Dezimal- und Oktalzahlen besteht:
Außerdem nahmen die Intervalle zwischen den einzelnen Zahlengruppen mit einer Geschwindigkeit zu, die dem von zurückgegebenen Wert
printf()
(dh der Anzahl der geschriebenen Zeichen) entsprach.quelle
Python 2, Größe 132, von Vi.
Danke für all die Backslashes und Anführungszeichen :)
Bearbeiten: Die aktualisierte 96-Zeichen-Version:
Dies stammt vollständig aus Alex 'Lösung in https://codegolf.stackexchange.com/a/41451/32353
quelle
fgiillmmooprrsstt
oder,,,\016:::S[]____tuuvyy
.exec
? Mein Code hätte kürzer sein können ... Ich habe ihn mitcompile
+ emuliert,eval
weil ich vergessen habeexec
...CJam, Größe 15, von Ypnypn
Aufgrund der angegebenen Zeichen musste es sich vermutlich um eine der drei folgenden Formen handeln:
Dadurch wird ein zweistelliger Bereich erstellt. Anschließend werden dem Bereich vor dem Summieren eine Addition und eine Modulo-Operation (in beliebiger Reihenfolge) zugeordnet. Also habe ich gerade mit dem ersten angefangen und systematisch versucht,
6789
die Lücken zu vertauschen .quelle
PHP, Größe 52, von PleaseStand
Dies stellte sich am Ende als recht einfach heraus. Die Ausgabe sieht sehr zufällig, und die Zeichen
m
,t
,_
,r
,a
,n
undd
alle erschienen zweimal ...quelle
Python 2, Größe 61, von FryAmTheEggman
Ich wäre sehr überrascht, wenn dies dem Original entspricht.
quelle
print''.__doc__[::2][::3].split()[1].split('.')[0][:-~-~True]
dir()
das "Get" gefunden hatten. Und ja, ohne die Anführungszeichen wäre es sehr schwierig gewesen.Python 3, Sp3000, Größe 44
Python 3 hat mir hier geholfen, da ich
None
nach dem Drucken der Antwort einen Fehler (Linksverschiebung ) verursachen konnte .quelle
print(~(~(()<())<<((()<((),))<<(()<((),)))))
ursprünglich.PHP, Größe 52, von Kenorb
(Gott, wie lange habe ich gebraucht, um herauszufinden, was ich mit dem verbleibenden
_r
Suffix anfangen sollte. Bis ich merkte, dass es nicht so warprint
, aberprint_r
...)quelle
_:print_r(chr(3*pow(2,5)+@++$i));if(@$i<4<<1)goto _;
.echo
nicht möglich;print
blieb; b) Sie brauchen eine Schleife, aber für einefor
Schleife gab es nicht genug Semikolons, und nun, es gibt einen Doppelpunkt ... also wahrscheinlich eine Bezeichnung in Kombination mit goto; c) dann braucht es ein if, um die goto-Schleife abzubrechen. Jetzt habenX:print($Y);if($Y)goto X;
(X und Y sind Platzhalter); d) es gibt a++
, aber nein=
, also wahrscheinlich einige++$Z
von 1 bis 8; e) um Buchstaben von einer ganzen Zahl zu bekommen, brauchen wirchr()
(normalerweise) - es war da; f) Jetzt musste ich nur noch die Nummern 96 und 8 für chr und if finden. Dann füllen Sie Platzhalter und Volià.PHP, Größe 54, von Steve Robbins
Nicht die ursprüngliche Lösung, denke ich.
quelle
echo
und deswhile
, konnte mich dann aber nicht darum kümmern, eine Schleife zu finden, die 42 ergibt.while
In meinem Original war eine .C, es1024, Länge 70
Der schwierige Teil bestand darin, alle nicht benötigten Charaktere im Auge zu behalten ... im Ernst ... ich musste sie ungefähr zehnmal wiederholen. Das Einzige, was mich beunruhigte, war das,
.
aber irgendwie habe ich es in die Mitte desprintf
Formatstrings gesteckt und es wurde unsichtbar!quelle
Python 3, Größe 110, von Sp3000
Das hat Spaß gemacht :)
quelle
Haskell, Größe 34, von Petr Pudlák
Beachten Sie, dass dieses Programm auf einem 32-Bit-Computer ausgeführt werden muss. Wenn Sie überprüfen möchten, ob dies das richtige Programm ist und Sie über einen 64-Bit-Computer verfügen, können Sie stattdessen Folgendes verwenden:
Es war ziemlich einfach, den "Rahmen" des Programms zu erraten
main=print(0x<hex digits>^0x<hex digits>::Int)
. Die ganze Magie bestand darin, nach dem richtigen Weg zu suchen, um die Ziffern zu unterteilen und zu ordnen. Ich habe hier nicht viel gescheites getan, nur eine Brute-Force-Suche ... obwohl ich darauf geachtet habe, die Tatsache zu missbrauchen, dass einige Ziffern dupliziert wurden, gab es wahrscheinlich ungefähr die gleiche Anzahl von Ziffern in der Basis und im Exponenten und Die letzte Ziffer der Basis war mit ziemlicher Sicherheit nicht gerade. Der vollständige Suchcode ist unten angegeben. Es wird das Multiset-Comb- Paket verwendet. Die vollständige Suche dauert auf meinem Computer ungefähr 10:33 (und liefert natürlich nur eine richtige Antwort).quelle
Javascript, 82, von TrungDQ
Es hat ewig gedauert, bis die Indizes richtig waren.
quelle