Inspiriert von diesem Kommentar ...
Vielen Dank an die Benutzer Step Hen , Wheat-Wizard und Dennis, die mir geholfen haben, die Spezifikation dieser Herausforderung zu konkretisieren, bevor ich sie veröffentlichte!
Das ist der Thread des Räubers! Für den Faden Cops, gehen hier
In dieser Herausforderung müssen Sie Code ausführen, der dafür sorgt, dass Ihre Sprache unsere Kriterien als Programmiersprache nicht mehr erfüllt. In dieser Herausforderung heißt das, es so zu machen, dass die Sprache nicht mehr ...
Zahleneingabe und -ausgabe übernehmen
Addiere zwei Zahlen
Testen Sie, ob eine bestimmte Zahl eine Primzahl ist oder nicht.
Dies ist eine Cops-and-Robbers- Herausforderung, bei der es zwei unterschiedliche Herausforderungen mit zwei unterschiedlichen Zielen gibt: Die Cops werden versuchen, Code zu schreiben, der die Sprache größtenteils unbrauchbar macht, und die Räuber werden versuchen, die verborgene Problemumgehung zu finden, die es den Cops ermöglicht ihre Sprache wiederzugewinnen.
Die Bullen werden zwei Code-Schnipsel schreiben:
Eine, die ihre Sprache größtenteils unbrauchbar macht, z. B. indem eingebaute Funktionen für Eingabe / Ausgabe und numerische Operationen entfernt werden. Dieser Code darf nicht abstürzen oder beendet werden. Es sollte möglich sein, Code am Ende dieses Snippets hinzuzufügen, und dieser Code wird ausgewertet . Und
Ein Codeausschnitt, der zwei Zahlen als Eingabe verwendet, sie addiert und ihre Summe ausgibt. Dieses Snippet muss auch nach dem Ausführen des ersten Snippets noch ordnungsgemäß funktionieren. Wenn die beiden Ausschnitte miteinander kombiniert werden, müssen sie ein vollständiges Programm bilden, das zwei Zahlen hinzufügt, oder eine Funktion definieren, die zwei Zahlen hinzufügt. Dieses Snippet wird sich wahrscheinlich auf obskures Verhalten stützen und schwer zu finden sein.
Die Bullen wählen auch eine Standardmethode für die Ein- und Ausgabe . Sie müssen jedoch genau angeben, welches Format (Eingabe und Ausgabe) sie verwenden. Damit Sie ihre Antwort knacken können, müssen Sie dasselbe Eingabe- / Ausgabeformat verwenden, oder Ihr Riss zählt nicht.
Eine Antwort der Polizei wird immer enthüllen
Der erste Ausschnitt (offensichtlich nicht der zweite).
Sprache (einschließlich Nebenversion, da die meisten Einsendungen wahrscheinlich auf seltsamen Randfällen beruhen)
IO-Format, einschließlich, ob es sich um eine Funktion oder ein vollständiges Programm handelt. Räuber müssen dasselbe Format verwenden, um ein gültiger Riss zu sein.
Irgendwelche seltsamen Randfälle, die erforderlich sind, damit ihre Antwort funktioniert. Läuft beispielsweise nur unter Linux oder erfordert eine Internetverbindung .
Als Räuber müssen Sie sich eines der Vorschläge der Polizei ansehen und versuchen, es zu knacken. Sie können es knacken, indem Sie irgendwelche schreiben gültiges Snippet , das als Snippet 2 funktionieren könnte (indem Sie zwei Zahlen addieren, nachdem die Sprache größtenteils unbrauchbar gemacht wurde). Dies muss nicht dasselbe Snippet sein, das der Cop ursprünglich geschrieben hat. Sobald du eine Antwort geknackt hast, poste deinen Code als Antwort in diesem Thread und poste einen Link zu deiner Antwort als Kommentar zur Antwort des Polizisten. Dann wird dieser Beitrag bearbeitet, um anzuzeigen, dass er geknackt wurde.
Hier ist ein Beispiel. Für das erste Snippet sehen Sie möglicherweise das folgende Python 3-Programm als Antwort der Polizei:
Python 3
print=None
Übernimmt die Eingabe von STDIN und gibt sie an STDOUT aus
Ein gültiges zweites Snippet könnte sein
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Dies ist gültig, da zwei Zahlen als Eingabe und Ausgabe ihrer Summe verwendet werden, auch wenn Sie die beiden Ausschnitte zusammenfügen, z
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Dies ist ein gültiger Riss zu ihrer Antwort.
Wenn die Antwort eines Polizisten eine Woche lang nicht geknackt ist, kann er sie in seinem zweiten Snippet bearbeiten und darauf hinweisen, dass seine Antwort jetzt sicher ist . Sobald es sicherheitshalber bearbeitet wurde, dürfen Sie nicht mehr versuchen, es zu knacken. Wenn sie es nicht als sicher bearbeiten, können Sie weiterhin versuchen, es zu knacken, bis sie es tun.
Der Gewinner des Räuber-Threads ist der Benutzer, der die meisten Antworten geknackt hat, wobei der Tie-Breaker der Zeitpunkt ist, an dem er N- Risse erreicht hat. (Wenn also zwei verschiedene Benutzer zum Beispiel jeweils 5 Risse haben, ist der Benutzer, der den 5. Crack zuerst gepostet hat, der Gewinner.) Nachdem genügend Zeit verstrichen ist, akzeptiere ich die Antwort des Gewinners mit den meisten Stimmen.
Habe Spaß!
Regelklärungen
Das erste Snippet muss korrekt ausgeführt werden, ohne dass Eingaben erforderlich sind . Es kann beliebig ausgegeben werden, und diese Ausgabe wird ignoriert. Solange das Snippet fertig ist, wird das zweite Snippet korrekt ausgeführt.
Das zweite Snippet muss tatsächlich ausgeführt werden, damit Ihre Antwort gültig ist. Dies bedeutet eine Antwort wie
import sys sys.exit()
ist nicht gültig, weil es die Sprache nicht bricht. Es hört einfach auf.
Nachdem Sie sicher sind, ist Ihre Punktzahl die Byteanzahl beider Ausschnitte .
Dies geht zurück auf Bitte enthüllen Sie alle seltsamen Randfälle, die erforderlich sind, damit Ihre Antwort funktioniert . Ihre Einreichung muss genügend Informationen enthalten, bevor sie enthüllt wird, damit sie nach der Enthüllung reproduzierbar ist. Dies bedeutet, dass, wenn Ihre Antwort sicher ist, Sie Folgendes bearbeiten: Hier ist meine Antwort. Oh ja, übrigens funktioniert dies nur, wenn Sie es unter Solaris ausführen, Witze über Sie! Ihre Antwort ist ungültig und wird gelöscht und gilt nicht als gewinnberechtigt.
Das zweite Snippet kann nach der Ausgabe der Summe abstürzen. Solange die Ausgabe noch korrekt ist (wenn Sie sich beispielsweise für die Ausgabe in STDERR entscheiden und dann eine Reihe von Absturzinformationen erhalten, ist diese ungültig)
Bestenliste
Hier ist eine Liste aller Benutzer mit mindestens einem Riss, sortiert nach Punktzahl und anschließendem Namen (alphabetisch). Wenn Sie einen Crack einreichen, aktualisieren Sie bitte Ihre Punktzahl entsprechend.
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
, das im Geltungsbereich liegt ... Sie könnenSystem.in
an dieser Stelle jedoch auch lesen , da es noch nicht geschlossen ist.