Bei einem sehr ungewöhnlichen Unfall mit einer kleinen Radiumprobe, einem durch Stromschlag getöteten Wal und drei Gummibären wurde ein Teil des Quellcodes von The Management ™ mutiert. Wenig weiß der Chef des Managements, es waren tatsächlich die Cops ©, die dafür verantwortlich waren, um die "bösen" Pläne des Managements zu vereiteln. Also wurden die Räuber angeheuert, um den ursprünglichen Code wiederzugewinnen, denn wer mag es nicht, manchmal böse zu sein?
Hinweis: Diese Herausforderung wurde stark von Unscramble the Source Code inspiriert .
Beschreibung
Dies ist eine Herausforderung für Bullen und Räuber .
- Die Bullen schreiben ein Programm (den mutierten Code), das Aufgabe Nr. 1 ausführt (und schreiben auch ein Programm, das Aufgabe Nr. 2 ausführt, aber geheim gehalten wird).
- Die Räuber versuchen, die "Mutation" rückgängig zu machen und diesen ursprünglichen Code in Code zu ändern, der Aufgabe 2 ausführt.
In dieser Herausforderung besteht Aufgabe Nr. 1 darin, die ndritte Primzahl und Aufgabe Nr. 2 die ndritte Fibonacci-Zahl auszugeben (was den Cops © zufolge ohnehin irgendwie böse ist). Die Fibonacci-Folge ist definiert als ( n=1→ 1; n=2→ 1; n=3→ 2; ...) und die Primzahlen sind definiert als ( n=1→ 2; n=2→ 3; n=3→ 5; ...).
Das Ziel der Polizei ist es, den Unterschied zwischen den Programmen, die Task 1 und Task 2 abschließen, zu minimieren und gleichzeitig zu verhindern, dass die Räuber den Code, der Task 2 abschließt, neu erstellen.
Cop-Regeln
Die Bullen werden zwei Programme schreiben (eines, das Aufgabe 1 abschließt, und eines, das Aufgabe 2 abschließt) und die folgenden Informationen veröffentlichen:
- Das erste Programm (das die
ndritte Primzahl ausgibt ) - Der Levenshtein-Bearbeitungsabstand zwischen dem ersten Programm und dem zweiten Programm
- Die Programmiersprache , in der beide Programme geschrieben sind (muss für beide Programme dieselbe Sprache sein)
Die folgenden Einschränkungen gelten für beide Programme:
- Sie dürfen maximal 128 Zeichen lang sein.
- Sie dürfen nur druckbares ASCII verwenden (plus Zeilenumbrüche, die ebenfalls zulässig sind).
- Die Laufzeit beträgt weniger als 10 Sekunden
n=45, und es ist nicht erforderlich, dass sie für alle die richtige Ausgabe liefernn>45. - Sie dürfen keine Hashing- oder kryptografischen Funktionen verwenden.
Räuberregeln
Der Räuber versucht, das Programm des Polizisten (das Task 1 abschließt) in ein Programm zu ändern, das Task 2 (nicht unbedingt das vom Polizisten geschriebene Originalprogramm) in der vom Polizisten festgelegten Bearbeitungsentfernung abschließt.
Eine bereits geknackte Einreichung kann nicht erneut geknackt werden (nur der erste Räuber, der eine Einreichung geknackt hat, erhält eine Gutschrift).
Nachdem Sie eine Einsendung geknackt haben, gehen Sie bitte wie folgt vor:
- Veröffentlichen Sie eine Antwort auf die zugehörige Frage (Link) dieser Herausforderung und geben Sie die Sprache, Ihre Lösung und einen Link zur ursprünglichen Antwort an.
- Hinterlasse einen Kommentar mit dem Text "Cracked", der auf deine gepostete Antwort verweist.
- Bearbeiten Sie die Antwort des Polizisten, wenn Sie über Bearbeitungsberechtigungen verfügen (wenn Sie dies nicht tun, warten Sie entweder, bis eine andere Person mit den erforderlichen Berechtigungen dies für Sie tut, oder schlagen Sie eine Bearbeitung vor).
Wertung
Wenn das Programm eines Polizisten eine Woche lang ungerissen bleibt, kann der Polizist den Originalcode, der Aufgabe Nr. 2 abschließt (in der angegebenen Bearbeitungsentfernung), veröffentlichen, und die Einreichung wird fortan als "sicher" betrachtet. Die sichere Einreichung mit der geringsten Bearbeitungsentfernung gewinnt. Im Falle eines Unentschieden gewinnt das kürzeste Programm (das Original, das Aufgabe 1 abschließt). Wenn zwei Einreichungen immer noch unentschieden sind, gewinnt die zuvor veröffentlichte.
Wenn ein Räuber die Vorlage eines Polizisten erfolgreich knackt, steigt die Punktzahl des Räubers um die Bearbeitungsentfernung dieser Vorlage. Zum Beispiel erhält ein Räuber, der eine Vorlage mit einer Bearbeitungsentfernung von 3 und eine mit einer Entfernung von 5 knackt, 8 Punkte. Der Räuber mit der höchsten Punktzahl gewinnt. Bei einem Unentschieden gewinnt der Räuber, der zuerst das Ergebnis erzielt hat.