Dies ist Teil einer Herausforderung für Polizisten und Räuber . Gehen Sie hier für die Räuber.
Die Herausforderung der Bullen
Sie sollten ein Programm oder eine Funktion in einer Sprache Ihrer Wahl schreiben, die den String ausgibt Haystack
. Es muss jedoch möglich sein, eine Teilmenge von Zeichen aus Ihrem Programm zu entfernen (ohne den Rest neu anzuordnen), sodass die resultierende Zeichenfolge auch ein gültiges Programm in derselben Sprache ist, das Needle
stattdessen gedruckt wird. Beide Programme / Funktionen können optional (unabhängig voneinander) eine einzelne abschließende Zeile ausgeben, sonst nichts. Bei der Ausgabe wird zwischen Groß- und Kleinschreibung unterschieden. Die Ausgabe muss genau der angegebenen Schreibweise entsprechen.
Ihr Ziel ist es natürlich, die "Nadel" sehr gut zu verstecken. Beachten Sie jedoch, dass Ihr Beitrag mit jeder gültigen Lösung geknackt werden kann , nicht nur mit der von Ihnen beabsichtigten.
Bitte geben Sie in Ihrer Antwort an:
- Die Sprache (und ggf. die Version) Ihres Beitrags.
- Die Größe des Haystack-Programms in Byte.
- Das Haystack-Programm selbst.
- Die Ausgabemethode, wenn es nicht STDOUT ist.
- Wenn möglich, einen Link zu einem Online-Dolmetscher / Compiler für die von Ihnen gewählte Sprache.
Ihr Beitrag kann entweder ein Programm oder eine Funktion sein, aber kein Ausschnitt, und Sie dürfen keine REPL-Umgebung annehmen. Sie dürfen keine Eingabe vornehmen und können über STDOUT, Funktionsrückgabewert oder Funktionsparameter (out) ausgeben.
Beide Programme / Funktionen müssen auf einem vernünftigen Desktop-Computer innerhalb von 5 Sekunden abgeschlossen und deterministisch sein. Sie dürfen keine integrierten Funktionen zum Hashing, zur Verschlüsselung oder zur Generierung von Zufallszahlen verwenden (auch wenn Sie den Zufallszahlengenerator auf einen festen Wert setzen).
Im Interesse der Fairness muss es einen frei verfügbaren Dolmetscher oder Compiler für die von Ihnen gewählte Sprache geben.
Eine Antwort ist geknackt, wenn das Nadelprogramm gefunden wird. Wenn Ihre Antwort 7 Tage lang nicht geknackt wurde, können Sie das vorgesehene Nadelprogramm in Ihrer Antwort angeben, wodurch Ihre Übermittlung sicher ist. Solange Sie Ihre Lösung nicht preisgeben, kann sie auch dann von Räubern geknackt werden, wenn die sieben Tage bereits verstrichen sind. Das kürzeste sichere Heuhaufen-Programm (gemessen in Bytes) gewinnt.
Beispiele
Hier einige einfache Beispiele in verschiedenen Sprachen:
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
Beachten Sie, dass die Teilmenge der entfernten Zeichen nicht zusammenhängend sein muss.
Uncracked Submissions
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
quelle
Antworten:
Heuhaufen , 84 Bytes, Gebrochen
Probieren Sie es online!
Das sieht (für mich) etwas verworren aus, aber wenn Sie die richtige Untergruppe finden, ist es ein bisschen zu einfach ... na ja, nur um uns zum Einstieg zu bringen: P
quelle
Hexagony , 37 Bytes
Probieren Sie es online!
Nur mein obligatorischer Hexagony-Eintrag ...
Der Einfachheit halber ist hier der aufgeklappte Code:
Wie das funktioniert:
Das Programm startet mit
H
, dann gehen wir zu IP # 5 über. Diese IP beginnt in der Westecke und springt und wickelt sich während der Ausführung ab (in Kraft);a;y;s;
(wir haben also gedrucktHays
). Danns
wird auf einem erhöhtt
durch)
und gedruckt, wir durchlaufen dannNe...(c
vor zu bekommena;c;
(noch einen kleinen Teil des Sechsecks um Prellen). Das Programm schlägt auf_
, reflektiert bis\
zul
dem , was zu einemk
von dekrementiert wird(
, das durch ein anderes geht,\
bevor es gedruckt wird, und das Programm endet auf dem@
.Ausführliche Version
Code-Snippet anzeigen
quelle
Brain-Flak , 146 Bytes ( geknackt )
Probieren Sie es online!
Geplante Lösung, 80 Bytes
quelle
JavaScript, 95 Bytes (ES6), Gebrochen
Eine Funktion, die eine Zeichenfolge zurückgibt.
"Haystack" -Demo
Code-Snippet anzeigen
quelle
Haskell , 168 Bytes ( geknackt von Nimi )
Probieren Sie es online! Das Auswerten des Bezeichners
h
gibt die Zeichenfolge zurück"Haystack"
, nachdem einige Löschungenh
ergeben"Needle"
.quelle
Gelee , 41 Bytes ( Gebrochen )
Probieren Sie es online!
Fröhliches Jagen!
quelle
Hexagony , 32 Bytes. Geknackt
Ich konnte Martins nicht lösen , also poste ich meine eigene.
Probieren Sie es online!
Hier ist es formatiert:
Mein Ziel dabei war, dass beide Lösungen so viele IPs wie möglich verwenden, ich bekam 6 für Needle und nur 5 für Haystack .
quelle
Pyth , 44 Bytes ( geknackt )
Probieren Sie es hier aus.
quelle
Java (OpenJDK 8) ,
226.217Byte ( geknackt )Zum ersten Mal Code Golf, wahrscheinlich sehr einfach, aber es war eine lustige Herausforderung!
Probieren Sie es online!
quelle
return new Main().d();
umSystem.out.print(new Main().d());
im Hauptverfahren.Gleichstrom , 148 Bytes ( geknackt )
Probieren Sie es online!
Es ist ziemlich einfach, aber ich hoffe, dass es wenigstens ein bisschen Spaß macht, es zu lösen: з
quelle
JavaScript, 119 Bytes (ES6), Gebrochen
Eine Funktion, die eine Zeichenfolge zurückgibt. Ziemlich lang und nicht so schwer, aber hoffentlich lustig.
"Haystack" -Demo
Code-Snippet anzeigen
quelle
Python 2.7.2, 103/117 Bytes, geknackt
Funktionsversion (117 Byte):
Programmversion (103 Byte):
Dies sollte
Haystack
gut gedruckt werden . Getestet auf Python Fiddle .Übrigens ist dies der erste Versuch.
Ich bin mir nicht sicher, ob die Programmversion als Snippet gezählt wird, also füge ich beide Versionen hier ein.
quelle
Python 2.7.10 mit Numpy 1.12.1,
208209 Bytes ( geknackt )Es scheint, dass es in Numpy eine Nadel und einen Heuhaufen gibt! Hier ist der Heuhaufen; sehen Sie, ob Sie die Nadel finden können. Ich hoffe, Sie haben so viel Spaß beim Suchen nach der Nadel, wie ich sie versteckt hatte.
Es gibt wie angegeben aus:
Sie können repl.it .
quelle
Java 8, 321 Bytes, Gebrochen
Probieren Sie es hier aus.
Besser lesbar:
Ich bin mir nicht sicher, ob es zu lang / zu schwer ist. Andererseits ist Java im Allgemeinen ziemlich lang.
Wenn Sie also die 'Nadel' richtig verstecken, erhöht sich natürlich die Anzahl der Bytes ein bisschen. Ich werde später ein paar Spoiler-Tipps hinzufügen.
quelle
Ruby , 185 Bytes, geknackt von cab404
Probieren Sie es online!
Ich werde versuchen, etwas Hinterhältiges zu erfinden, aber hier ist ein Versuch, "einfach, aber widerlich".
quelle
Brain-Flak , 188 Bytes ( geknackt )
Ich habe gerade die Antwort von Funky Computer Man gesehen , als ich das gepostet habe.
Es ist etwas verschleiert.
Probieren Sie es online!
Beabsichtigte Lösung, 96 Bytes:
Probieren Sie es online!
quelle
T-SQL, 757 Zeichen CRACKED
Entschuldigung für das Löschen meiner vorherigen Antwort - Ich habe sie zu oft bearbeitet, als ich sie verschleiert habe, und wollte nichts preisgeben. :)
In SQL zu verschleiern ist auf jeden Fall ein bisschen schwierig, es sei denn, Sie möchten verrückte Sachen wie diese machen , und ich war nicht so investiert.
Außerdem entschuldige ich mich nicht, dass ich meine Variablen nach Dota benannt habe.
SQL-Geige
Wenn dies die einfachste Antwort in diesem Thread ist, haben Sie wahrscheinlich Recht. : P Es ist schwer, SQL auszutricksen.
quelle
Ly , 40 Bytes, geknackt
Probieren Sie es online!
Oh Mann, noch eine Ly CNR Einreichung. Diese haben in der Vergangenheit nicht sehr gut funktioniert (möglicherweise aufgrund von mir und nicht der Sprache),
aber wir werden sehen, wie dies abläuftund heute keine Ausnahme ist.Lösung:
quelle
Java , 345 Bytes, Gebrochen
Probieren Sie es online!
Wirklich lang und wahrscheinlich leicht zu knacken, aber zumindest hat es eine
Stack<Hay>
!quelle
TI-BASIC, 119 Byte (sicher)
Ausgabe gespeichert in
Ans
.Lösung
Entfernen Sie die Zeichen aus
Str1
, um eine Länge von 1 zu erhalten.quelle
PHP, 44 Bytes, Gebrochen
ziemlich leicht zu knacken; aber Ich mag es.
Laufen Sie mit
-nr
oder versuchen Sie es online .quelle
Aceto , 154 Bytes (Sicher)
Probieren Sie es online!
quelle