Den Räuber-Thread finden Sie hier: The Mystery String Printer (Robbers)
Deine Herausforderung
- Schreiben Sie ein Programm, eine Funktion oder ein REPL-Skript, das eine Zeichenfolge an STDOUT ausgibt.
- Die Räuber werden versuchen, ein Programm zu erstellen, das den gleichen String ausgibt.
- Wenn sie das Programm innerhalb von 7 Tagen erfolgreich erstellen können, ist Ihr Beitrag geknackt.
- Wenn niemand innerhalb von 7 Tagen ein Programm erstellen kann, das denselben String druckt, ist Ihre Eingabe sicher. Sie können entscheiden, ob Sie Ihr Programm veröffentlichen oder es künftigen Räubern überlassen möchten. Wenn Sie es jedoch nicht preisgeben, können Sie keine Punkte aus Ihrer Einreichung erhalten (tragen Sie "sicher" nicht in Ihren Antwortkopf ein, wenn Sie dies tun).
Beschränkungen
- Das Programm muss kleiner oder gleich 128 Bytes sein (dazu später mehr).
- Wenn das Programm vom Programmnamen oder vom Namen / Inhalt einer externen Datei abhängt, müssen Sie dies bestätigen und dies in Ihre Gesamtbytezahl einbeziehen.
- Die gedruckte Zeichenfolge muss kleiner oder gleich 2048 Byte sein.
- Die gedruckte Zeichenfolge darf nur aus druckbaren ASCII-Zeichen bestehen (neue Zeilen können eingefügt werden).
- Das Programm muss bei jeder Ausführung dieselbe Ausgabe erzeugen.
- Eingebaute kryptografische Grundelemente (einschließlich Rng, Verschlüsselung, Entschlüsselung und Hash) sind nicht zulässig.
- Das Programm darf keine Eingaben annehmen.
- Keine Standardlücken.
Wertung
- Wenn eine Einreichung vor sieben Tagen geknackt wird, erhält die Einreichung 0 Punkte.
- Eine sichere Übermittlung von ≤128 Zeichen bringt 1 Punkt.
- Eine sichere Einreichung von ≤64 Zeichen bringt 2 Punkte. Wenn er kleiner oder gleich 32 Bytes ist, werden 4 Punkte vergeben und so weiter.
- Für jede sichere Einreichung erhalten Sie zusätzlich einen Bonus von 3 Punkten (unabhängig von der Länge).
- Es gibt eine kleine Strafe (1/2 Punkt) für jeden geknackten nach dem ersten.
- Beachten Sie, dass die Räuberlösung im selben Bereich von Programmlängen liegen muss.
- Jede Person darf maximal 1 Programm pro Byte-Bereich pro Sprache einreichen (unterschiedliche Versionen und beliebige Ersetzungen derselben Sprache zählen nicht als separate Sprachen). Beispiel: Sie können ein 32-Byte- und ein 64-Byte-Pyth-Programm bereitstellen, jedoch kein 128-Byte-Programm in Java 7 und Java 8.
- Die Person mit der höchsten Punktzahl gewinnt.
Einreichungen
Jede Einreichung muss die folgenden Informationen enthalten:
- Der Name der Sprache. Alle neuen Räuberlösungen müssen dieselbe Sprache haben.
- Der Bereich der Programmgröße (dies ist die nächsthöhere Zweierpotenz als die Programmgröße; wenn Ihr Programm beispielsweise 25 Byte umfasst, ist dies "≤32").
- Die tatsächliche Zeichenfolge, die ausgedruckt werden soll.
- Wenn eine Einsendung sicher ist, geben Sie "sicher" und die Programmlänge (auf die nächste Potenz von 2) in Ihren Header ein. Wenn Ihre Kopfzeile mehrere Zahlen enthält, setzen Sie die Potenz auf 2 als letztes.
Dieses Stack-Snippet generiert Bestenlisten und listet alle offenen Einreichungen auf. Wenn es Probleme mit dem Snippet gibt, hinterlassen Sie bitte einen Kommentar.
/* Configuration */
var QUESTION_ID = 60328; // Obtain this from the url
// It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page
var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";
var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk";
var OVERRIDE_USER = 167084; // This should be the user ID of the challenge author.
var SECONDSINDAY = 86400;
var SAFECUTOFFDAYS = 7;
var SORTBYTIME = true;
var SUBTRACTCRACKEDPOINTS = true;
var EXPIREDTIME = 1446336000;
/* App */
var answers = [],
answers_hash, answer_ids, answer_page = 1,
more_answers = true,
comment_page;
function answersUrl(index) {
return "//api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER;
}
function commentUrl(index, answers) {
return "//api.stackexchange.com/2.2/answers/" + answers.join(';') + "/comments?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + COMMENT_FILTER;
}
function getAnswers() {
jQuery.ajax({
url: answersUrl(answer_page++),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function(data) {
answers.push.apply(answers, data.items);
answers_hash = [];
answer_ids = [];
data.items.forEach(function(a) {
a.comments = [];
var id = +a.share_link.match(/\d+/);
answer_ids.push(id);
answers_hash[id] = a;
});
if (!data.has_more) more_answers = false;
comment_page = 1;
getComments();
}
});
}
function getComments() {
jQuery.ajax({
url: commentUrl(comment_page++, answer_ids),
method: "get",
dataType: "jsonp",
crossDomain: true,
success: function(data) {
data.items.forEach(function(c) {
answers_hash[c.post_id].comments.push(c);
});
if (data.has_more) getComments();
else if (more_answers) getAnswers();
else process();
}
});
}
getAnswers();
var SAFE_REG = /<h\d>.*?[sS][aA][fF][eE].*<\/\h\d>/;
var POINTS_REG = /(?:<=|≤|<=)\s?(?:<\/?strong>)?\s?(\d+)/
var POINTS_REG_ALT = /<h\d>.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/;
var CRACKED_HEADER_REG = /<h\d>.*[Cc][Rr][Aa][Cc][Kk][Ee][Dd].*<\/h\d>/;
var CRACKED_COMMENT_REG = /(.*[Cc][Rr][Aa][Cc][Kk][Ee][Dd].*<a href=.*)|(.*<a href=.*[Cc][Rr][Aa][Cc][Kk][Ee][Dd].*)/
var OVERRIDE_REG = /^Override\s*header:\s*/i;
var LANGUAGE_REG = /<h\d>\s*(.+?),.*<\/h\d>/;
var LANGUAGE_REG_ALT = /<h\d>\s*(<a href=.+<\/a>).*<\/h\d>/
var LANGUAGE_REG_ALT_2 = /<h\d>\s*(.+?)\s.*<\/h\d>/;
var LANGUAGE_REG_ALT_3 = /<h\d>(.+?)<\/h\d>/;
function getAuthorName(a) {
return a.owner.display_name;
}
function process() {
var valid = [];
var open = [];
answers.forEach(function(a) {
var body = a.body;
var cracked = false;
a.comments.forEach(function(c) {
var was_safe = (c.creation_date + (SECONDSINDAY * SAFECUTOFFDAYS) > a.creation_date);
if (CRACKED_COMMENT_REG.test(c.body) && !was_safe)
cracked = true;
});
if (CRACKED_HEADER_REG.test(body)) cracked = true;
// if (SUBTRACTCRACKEDPOINTS||!cracked) {
var createDate = a.creation_date;
var currentDate = Date.now() / 1000;
var timeToSafe = (createDate + (SECONDSINDAY * SAFECUTOFFDAYS) - currentDate) / SECONDSINDAY;
var SafeTimeStr = (timeToSafe > 2) ? (Math.floor(timeToSafe) + " Days") :
(timeToSafe > 1) ? ("1 Day") :
(timeToSafe > (2 / 24)) ? (Math.floor(timeToSafe * 24) + " Hours") :
(timeToSafe > (1 / 24)) ? ("1 Hour") :
"<1 Hour";
var expired = createDate > (EXPIREDTIME);
var safe = timeToSafe < 0;
var points = body.match(POINTS_REG);
if (!points) points = body.match(POINTS_REG_ALT);
safe = safe && !cracked
isOpen = !(cracked || safe);
if (points) {
var length = parseInt(points[1]);
var safepoints = 0;
if (length <= 4) safepoints = 32;
else if (length <= 8) safepoints = 16;
else if (length <= 16) safepoints = 8;
else if (length <= 32) safepoints = 4;
else if (length <= 64) safepoints = 2;
else if (length <= 128) safepoints = 1;
valid.push({
user: getAuthorName(a),
numberOfSubmissions: (safe && !expired) ? 1 : 0,
points: (safe && !expired) ? safepoints : 0,
open: (isOpen && !expired) ? 1 : 0,
cracked: (cracked && !expired) ? 1 : 0,
expired: (expired) ? 1 : 0
});
}
if ((isOpen || expired) && points) {
var language = body.match(LANGUAGE_REG);
if (!language) language = body.match(LANGUAGE_REG_ALT);
if (!language) language = body.match(LANGUAGE_REG_ALT_2);
if (!language) language = body.match(LANGUAGE_REG_ALT_3);
open.push({
user: getAuthorName(a),
length: points ? points[1] : "???",
language: language ? language[1] : "???",
link: a.share_link,
timeToSafe: timeToSafe,
timeStr: (expired) ? "Challenge closed" : SafeTimeStr
});
}
// }
});
if (SORTBYTIME) {
open.sort(function(a, b) {
return a.timeToSafe - b.timeToSafe;
});
} else {
open.sort(function(a, b) {
var r1 = parseInt(a.length);
var r2 = parseInt(b.length);
if (r1 && r2) return r1 - r2;
else if (r1) return r2;
else if (r2) return r1;
else return 0;
});
}
var pointTotals = [];
valid.forEach(function(a) {
var index = -1;
var author = a.user;
pointTotals.forEach(function(p) {
if (p.user == author) index = pointTotals.indexOf(p);
});
if (index == -1) pointTotals.push(a);
else {
pointTotals[index].points += a.points;
pointTotals[index].numberOfSubmissions += a.numberOfSubmissions;
pointTotals[index].cracked += a.cracked;
pointTotals[index].expired += a.expired;
pointTotals[index].open += a.open;
if (SUBTRACTCRACKEDPOINTS && a.cracked && pointTotals[index].cracked > 1) pointTotals[index].points -= .5;
}
});
pointTotals.forEach(function(a) {
a.points += (a.numberOfSubmissions) ? ((a.numberOfSubmissions) * 3) : 0;
});
pointTotals.sort(function(a, b) {
if (a.points != b.points)
return b.points - a.points;
else if (a.numberOfSubmissions != b.numberOfSubmissions)
return b.numberOfSubmissions - a.numberOfSubmissions;
else if (a.open != b.open)
return b.open - a.open;
else if (a.cracked != b.cracked)
return a.cracked - b.cracked;
else return 0;
});
pointTotals.forEach(function(a) {
var answer = jQuery("#answer-template").html();
answer = answer
.replace("{{NAME}}", a.user)
.replace("{{SAFE}}", a.numberOfSubmissions)
.replace("{{OPEN}}", a.open)
.replace("{{CLOSED}}", a.expired)
.replace("{{CRACKED}}", a.cracked)
.replace("{{POINTS}}", a.points);
answer = jQuery(answer);
jQuery("#answers").append(answer);
});
open.forEach(function(a) {
var answer = jQuery("#open-template").html();
answer = answer
.replace("{{NAME}}", a.user)
.replace("{{LENGTH}}", a.length)
.replace("{{LANGUAGE}}", a.language)
.replace("{{TIME}}", a.timeStr)
.replace("{{LINK}}", a.link);
answer = jQuery(answer);
jQuery("#opensubs").append(answer);
});
}
body {
text-align: left !important
}
#answer-list {
padding: 10px;
width: 350px;
float: left;
}
#open-list {
padding: 10px;
width: 470px;
float: left;
}
table thead {
font-weight: bold;
vertical-align: top;
}
table td {
padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b">
<div id="answer-list">
<h2>Leaderboard</h2>
<table class="answer-list">
<thead>
<tr>
<td>Author</td>
<td>Safe</td>
<td>Open</td>
<td>Cracked</td>
<td>Late Entry</td>
<td>Score</td>
</tr>
</thead>
<tbody id="answers">
</tbody>
</table>
</div>
<div id="open-list">
<h2>Open submissions</h2>
<table class="open-list">
<thead>
<tr>
<td>Author</td>
<td>Length</td>
<td>Language</td>
<td>Time Remaining</td>
<td>Link (open in new tab)</td>
</tr>
</thead>
<tbody id="opensubs">
</tbody>
</table>
</div>
<table style="display: none">
<tbody id="answer-template">
<tr>
<td>{{NAME}}</td>
<td>{{SAFE}}</td>
<td>{{OPEN}}</td>
<td>{{CRACKED}}</td>
<td>{{CLOSED}}</td>
<td>{{POINTS}}</td>
</tr>
</tbody>
</table>
<table style="display: none">
<tbody id="open-template">
<tr>
<td>{{NAME}}</td>
<td>{{LENGTH}}</td>
<td>{{LANGUAGE}}</td>
<td>{{TIME}}</td>
<td><a target="_parent" href="{{LINK}}">Link</a>
</td>
</tr>
</tbody>
</table>
Verwenden Sie für die Einträge die folgenden Formate:
Language, (any text with the program size as the last number)
=
oder
Language
=
Length <= 16
Beachten Sie, dass das Snippet nur dann das erste Wort als Sprache in die Kopfzeile einfügt, wenn es kein Komma erkennt.
Geben Sie für sichere Übermittlungen safe in Ihren Header ein. Das Snippet fügt Ihr Programm automatisch in die Spalte "Sicher" ein, wenn die Zeit abgelaufen ist. Auf diese Weise können Räuber besser erkennen, dass Ihr Programm sicher ist.
Fügen Sie für geknackte Einsendungen geknackte in Ihre Kopfzeile ein.
Das Programm sollte auch erkennen können, ob ein Kommentar "geknackt" lautet und einen Link hat. Dies ist jedoch nicht garantiert.
Tiebreaking-Reihenfolge: Punkte -> Anzahl sicherer Einreichungen -> Geringste Anzahl geknackter Einreichungen.
Beachten Sie, dass das Snippet nach offenen Einsendungen sortiert wird, bevor es am wenigsten geknackt wurde. Offene Einsendungen werden jedoch am Ende des Wettbewerbs nicht gezählt.
Diese Herausforderung ist jetzt geschlossen.
Die meisten Punkte Gesamtsieger: Dennis
Am sichersten Einsendungen: DLosc
(Beachten Sie, dass die Anzahl der sicheren Einreichungen keinen Punkt ergibt, da die Größe der Programme bei der Berechnung der Punktzahl berücksichtigt wird.)
Antworten:
Pyth, Safe, Range ≤ 8
Der Code:
Erläuterung:
quelle
]
?VBA, [Sicher]
Bereich <= 128 Bytes
Hinweis, wo ausgegeben werden soll
255 Bytes ausgeben
Lösung
Code
Erklärt
quelle
Mathematica, sicher, Bereich ≤ 64
Ausgabe:
Quelle:
quelle
GenomeLookup
alles ...ngn APL (sicher)
Bereich ≤ 8
Lösung
Probieren Sie es online aus.
Wie es funktioniert
⍟⍣=42
Wendet den natürlichen Logarithmus (⍟
) wiederholt auf 42 an, bis ein fester Punkt erreicht ist (⍣=
), was 0,31813150520476413J1,3372357014306895 ergibt .Der Anfangswert spielt hier keine Rolle, solange er weder 1 noch 0 ist .
3○
Wendet eine Tangente auf das rechte Argument an und ergibt 0.07343765001657206J0.8920713530605129 .*
Wendet die natürliche Exponentialfunktion auf das richtige Argument an und liefert die gewünschte Ausgabe.quelle
Pyth, geknackt von Sp3000
Bereich ≤ 8
quelle
> <> (Sicher)
Auf den Online- und offiziellen Dolmetschern getestet.
Bereich: <= 16
Zeichenfolge:
4621430504113348052246441337820019217490490
Das ist ziemlich 1337, oder?
Erläuterung:
Hier ist der Quellcode (15 Bytes):
f
schiebt 15 (unseren Zähler) auf den Stapel (dies wird!
am Ende übersprungen, um nicht mehr als einen Zähler zu schieben)1-
subtrahiert 1 vom Zähler:0(?;
Das Stirnrunzeln prüft, ob der Zähler kleiner als 0 ist, der Rest beendet das Programm, wenn dies der Fall ist::
Kopiert den Zähler zweimal0g
Ergreift das Zeichen an der Stelle(c,0)
im Quellcode, an derc
sich der Zähler befindet*
Multipliziert das zweite Duplikat des Zählers mit der ASCII-Darstellung des zuvor erfassten Zeichensn
Druckt das Ergebnis.Die Ausgabe ist also aufgeteilt
[462, 1430, 504, 1133, 480, 522, 464, 413, 378, 200, 192, 174, 90, 49, 0]
. Dies entspricht der ASCII-Interpretation des Codes in umgekehrter Reihenfolge multipliziert mit den Zahlen 14 bis 0 (dh[!*14, n*13, ... f*0]
).Das Schwierigste am Knacken ist wahrscheinlich, herauszufinden, wie man die Zahlen richtig aufteilt. Wenn Sie jedoch die richtigen Zahlen finden, müssen Sie nur Dinge ausprobieren, bis Sie etwas finden, das funktioniert.
quelle
Schneemann 1.0.2
Bereich ≤32.
Die Lösung ist:
quelle
Matlab, ≤16. Von Wauzl geknackt
Bereich ≤16 .
Dies funktioniert auch in Octave .
Die gedruckte Zeichenfolge lautet wie folgt:
quelle
Perl (sicher)
Bereich ≤ 32
Lösung
Probieren Sie es online aus.
Wie es funktioniert
for-951..1048
Führt den vorhergehenden Befehl für jede Ganzzahl in diesem Bereich aus und speichert ihn in der impliziten Variablen.y/124589//
führt eine Transliteration durch, wobei die angegebenen Ziffern aus der impliziten Variablen entfernt werden.y///
Gibt die Anzahl der Eliminierungen zurück, dh die Anzahl der Vorkommen dieser Ziffern in der impliziten Variablen.print 2**
druckt 2 hoch ( 1 , 2 , 4 oder 8 ).quelle
Python, <= 16 ( geknackt von kennytm )
Dies wurde über REPL (Ausführen eines Befehls in der Python-Shell) erzeugt.
Während ich das bearbeite, werde ich auch die Kommentare für zukünftige spoilerfreie Räuber zusammenfassen: Dies funktioniert nicht in allen Pythons. Es funktioniert in einem Build von Python 2.7, in dem
sys.maxint = 9223372036854775807
.quelle
> <> , ≤ 8 [ geknackt ]
Das sind insgesamt 12
o
s. Das Programm wird fehlerfrei angehalten und funktioniert sowohl mit dem offiziellen Dolmetscher als auch mit dem Online-Dolmetscher .quelle
TI-BASIC, ≤4 Bytes, geknackt von Reto Koradi
Das Knacken dauerte 5 Tage und 23 Stunden. So nah...
Ausgabe (10 Bytes):
Programm:
Da es für jemanden im Grunde unmöglich ist, dies zu erraten, bestand mein Ziel bei der Entwicklung dieses Programms darin, Brute Force zum einzig möglichen Ansatz zu machen.
Zu diesem Zweck habe ich verhindert, dass die Ausgabe oder die Ausgabe mit einer dieser Umkehrfunktionen auf dem ISC angezeigt wird. ISC hat keine hyperbolische Tangente, und ich nahm an, dass es kein ähnliches Werkzeug geben würde
tanh(7°
.Um etwas mehr Sicherheit gegen Brute Force zu bieten, habe ich die Grad-zu-Radian-Konvertierung verwendet, eine etwas undurchsichtige Funktion, die aber nicht ausreichte.
quelle
sin(
1 Byte auf TI-BASIC. So etwassin(sin(sin(e
wäre nur 4 Bytes.fPart(
.CJam, ≤ 8 [sicher]
Ich mag keine langen Zahlen, also hier ist eine kurze. Fühlen Sie sich frei, sowohl offline als auch online zu fummeln .
Da ich nur Nummern-Einsendungen ziemlich langweilig finde, werde ich langsam ein paar Hinweise herausgeben, um das zu kompensieren.
Lösung
Das Programm war
0W#
ist0^-1
, was statt fehler heraus gibtInfinity
.s
Wirft dies dann in eine Zeichenfolge (Notiz,`
die1d0/
stattdessen gibt ).Für die andere Hälfte
Wc
wird -1 in ein Zeichen konvertiert, das aufgrund des Umlaufs für Zeichen zum Codepunkt 65535 wird (siehe diesen Tipp ).i
konvertiert dann das Zeichen zurück in ein int, dh 65535.Schließlich
b
wandelt die ZeichenfolgeInfinity
65535 zur Basis der obigen Nummer zu geben.quelle
Javascript (Konsole), <= 32 ( geknackt von insertusernamehere )
Getestet in Chrome- und Firefox-Webkonsolen. Das ist eine 43-stellige Zeichenfolge.
Meine beabsichtigte Lösung war etwas ausgefeilter als die verknüpfte (Fluch, ES6!).
Erläuterung:
quelle
Python, <= 32 ( geknackt von Egor Skriptunoff)
Die Ausgabe beträgt 1832 Byte, einschließlich Zeilenumbrüchen:
quelle
CJam ( geknackt von Dennis)
Länge <= 4
Ich gebe dem keine sehr hohe Überlebenschance, aber ich wollte trotzdem eine 4-Byte-Lösung ausprobieren.
Mein Code war genau das, was Dennis rückentwickelt hat:
CJam druckt dann den gesamten Stapelinhalt verkettet aus. Also wurde die Ausgabe mit
17
verkettet19^20
.quelle
KK#
, ein paar weitere Kräfte ausprobiert und schließlich gefundenJK#
.Lua, ≤ 4 ( durch Feersum geknackt )
Ausgabe:
Sie müssen einen String für Lua REPL finden, der die Konstante "1 / M" ergibt.
Es ist einfach, aber nicht sehr trivial.
quelle
=
vor dem Ausdruck weglassen .0x2p-21
Pip , <= 16 (sicher)
Ich verspreche, dass dies meine letzte Pip-Einreichung ist. :)
Es würde mich überraschen, wenn irgendjemand das auf 16 Bytes bringt - ich habe einige Versuche gebraucht, um es fit zu machen. (Nimm das als Herausforderung, wenn du magst!)
Antworten:
Dieser Code verwendet die vordefinierten Variablen
t
= 10 unds
= space.quelle
Ruby, geknackt von Kennytm
Bereich: ≤64.
(Und ja, die gesamte Ausgabe erfolgt nach STDOUT.)
Beabsichtigte Lösung:
quelle
TI-BASIC ( geknackt von Thomas Kwa )
TI-89-Variante
Reichweite: ≤8 Ausgabelänge
: 460
Ich glaube nicht, dass Sie RIES dafür verwenden können, aber ich bezweifle, dass es trotzdem 7 Tage überleben wird. Naja.
Code:
quelle
MATLAB, geknackt von Tom Carpenter
Bereich <= 16
quelle
Mathematica, geknackt von Sp3000
Bereich: <= 32
quelle
Thue - <= 64 Bytes, geknackt von einem Histokraten.
555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
Das ist 2016 5s; Apropos.
quelle
CJam, ≤8 (sicher)
Originalcode:
Beginnen Sie also mit
3.141592653589793
jedem Zeichen in und ersetzen Sie es"3.141592653589793"
durch das entsprechende Zeichen in"\"3.141592653589793\""
. Mit den Duplikate entfernt, ist ersetzt sie tatsächlich".123456789
mit""35\.49831
.quelle
Python 2 (sicher 16)
Bereich ≤ 16. Falls es auf die Version ankommt (für die Druckgenauigkeit?), Verwende ich ideone .
Ich sehe keine Möglichkeit, den Code ohne Computersuche zu erraten, aber Sie haben mich alle schon einmal beeindruckt.
Antworten:
quelle
dir(complex)
zu sehen, welche Operationen für komplexe Zahlen definiert sind. Ich wusste nicht, dass Sie einen Modul verwenden können. Beachten Sie, dass dies wahrscheinlich nicht hilfreich ist, aber vielleicht ...JavaScript ES6, ≤128 Bytes - Gebrochen
Ausgabe (1124 Bytes):
Viel Spaß und viel Glück!
Originalcode:
quelle
Still safe :3
TI-BASIC (geknackt von Thomas Kwa)
Bereich: <= 2
Zeichenfolge:
-10
Code:
Xmin
Es gibt nur keinen Grund, diesen Kerl zum Narren zu halten ...
quelle
~9
(Bit-Inversion)AppleScript, ≤ 2 Bytes geknackt
"Brute gezwungen ... meckern meckern ..."
Was ist das? Eine kurze AppleScript-Antwort? :O
(Ja, dies druckt nach Standard)
quelle
a=
odera-
1=
oder1-
oder? Ich habe keine Ahnung =)say"Cracked."
, und, wenn Sie nichts dagegen haben, mit einem weiteren Bytesay"Cracked"
. c:> <> (Fisch) , rissige von SP3000
Länge <= 8
Die Ausgabe ist 23
>
und das Programm erzeugt keinen Fehler.quelle
GolfScript (sicher)
Bereich ≤ 8
Lösung
Probieren Sie es online aus.
Wie es funktioniert
{9?7*}
schiebt diesen Block auf den Stapel..%
dupliziert den Block und ordnet ihn zu ... über sich selbst.GolfScript führt Typ-Casting durch, als gäbe es kein Morgen. In diesem Fall erwartet der Interpreter einen iterablen Wert, sodass der ursprüngliche Block in ein Array umgewandelt wird und das folgende Array von Zeichencodes ergibt: [57 63 55 42] .
Der Block selbst erhöht jeden Zeichencode auf die neunte Potenz (
9?
) und multipliziert das Ergebnis mit sieben (7*
).Für die vier Zeichencodes im Array wird diese Taste gedrückt
Vor dem Beenden druckt der Interpreter die vier Ganzzahlen ohne Trennzeichen.
quelle