Das ist der Faden der Bullen. Der Räuberfaden geht hier .
Der letzte Cops-and-Robbers- Thread war bereits vor 4 Monaten .
Die Aufgabe des Polizisten
- Der Cop hat die Aufgabe, ein Programm / eine Funktion zu schreiben, die eine positive (oder nicht negative) Ganzzahl verwendet und eine andere Ganzzahl ausgibt / zurückgibt.
- Der Polizist muss es angeben, wenn das Programm gegen Null intolerant ist.
- Der Cop stellt mindestens 2 Sample-Ein- / Ausgänge zur Verfügung.
- Wenn ich zum Beispiel beschlossen hätte, die Fibonacci-Sequenz zu schreiben , würde ich dies in meine Antwort schreiben:
a (0) gibt 0 zurück a (3) gibt 2 zurück
- Die Anzahl der Beispiele liegt im Ermessen des Polizisten.
- Die Sequenz muss jedoch tatsächlich in der On-Line Encyclopedia of Integer Sequences® vorhanden sein , sodass Sie keinen Pseudozufallszahlengenerator benötigen.
:(
- Der Cop kann beliebig viele Zeichen verstecken.
- Zum Beispiel, wenn mein Programm ist:
function a(n)
if n>2 then
return n
else
return a(n-1) + a(n-2)
end
end
- Dann würde ich diese Zeichen verstecken, wie ich will:
function a(n)
if ### then
########
else
######################
end
end
Die Aufgabe des Räubers
- ist natürlich der original quellcode zu finden.
- Jeder vorgeschlagene Quellcode, der dieselbe Ausgabe erzeugt, gilt jedoch auch als gültig, sofern er auch in OEIS enthalten ist.
Tipps für die Bullen
Die Suchfunktion im OEIS funktioniert nur bei aufeinanderfolgenden Begriffen. Wenn Sie also Ihre Sequenz verbergen möchten, lassen Sie einfach irgendwo ein Loch frei.- Anscheinend gibt es keine Möglichkeit, die Sequenz zu verbergen. Denken Sie daran, wenn Sie die Reihenfolge auswählen.
Ihre Punktzahl ist die Anzahl der Bytes in Ihrem Code.
Der Gewinner ist die Einsendung mit der niedrigsten Punktzahl, die seit 7 Tagen nicht geknackt wurde.
Nur Einsendungen, die im April 2016 veröffentlicht wurden, sind für den Gewinn berechtigt. Später eingereichte Beiträge sind willkommen, können aber nicht gewinnen.
Um den Gewinn zu beanspruchen, müssen Sie den vollständigen Code und die OEIS-Sequenz (nach 7 Tagen) offenlegen.
Dein Beitrag sollte folgendermaßen formatiert sein (NN ist die Anzahl der Zeichen):
Lua, 98 Bytes
Ausgabe:
a(0) returns 0
a(3) returns 2
Code ( #
kennzeichnet nicht aufgedeckte Zeichen):
function a(n)
if ### then
########
else
######################
end
end
Wenn der Code geknackt ist, fügen Sie ihn [Cracked](link to cracker)
in die Kopfzeile ein. Wenn die Übermittlung sicher ist, fügen Sie "Sicher" in die Kopfzeile ein und geben Sie den vollständigen Code in Ihrer Antwort an. Nur Antworten, die den vollständigen Code enthüllt haben, sind für den Gewinn berechtigt.
quelle
_
, fyia(1000)
? (Das ist Teil der Sequenz, aber zu groß, um auf OEIS durchsucht werden zu können)Antworten:
Vim, 36 Tastenanschläge - Sicher!
(Hinweis:
<n>
Hier geben Sie Ihre Eingabe ein.)Hier ist der Code, der nichts mit der Nummerngenerierung zu tun hat:
Das heißt, ich zeige 5 von 19 Zeichen.
<n>
ist der Eingang. Hier sind einige Beispielausgaben:Antworten
Dieser Code gibt die Lucas-Nummern ( A000032 ) aus, die genau wie die Fibonnaci-Sequenz sind, mit der Ausnahme, dass sie am
2, 1
statt beginnen1, 1
. Hier sind die ersten 15 Zahlen:Hier ist der aufgedeckte Code:
Erläuterung:
Erklärung des Makros:
Jetzt müssen wir nur noch die zweite Zahl entfernen, da die erste Zahl die von uns gewünschte Lucas-Zahl ist. So machen wir es
Wenn ich mich nicht irre, ist dies auch die erste sichere Einreichung! Das ist irgendwie cool.
quelle
bD
am Ende ist die Ausgabe nur die eine Zahl und ein zusätzliches Leerzeichen.05AB1E , 5 Byte, sicher
Letzter für heute: p. Ausgabe:
Code:
Verschleierte Zeichen sind mit gekennzeichnet
_
. Probieren Sie es online! -Verknüpfung. Verwendet die CP-1252- Codierung.Lösung:
Erläuterung:
Probieren Sie es online! oder Für alle Testfälle testen! .
quelle
g°<¹-
aber ich kann keine Möglichkeit herausfinden,m
bei dieser Größe zu verwenden! D:Element , 7 Bytes, geknackt
Ausgabe:
Das
#
sind versteckte Zeichen, und sie sind alle druckbare ASCII-Zeichen. Ich denke, dass dies einigermaßen schwierig ist (da nur 5 Zeichen fehlen).Der Einfachheit halber finden Sie hier die Wiki- Seiten Try It Online und Esolang .
Mein ursprüngliches Programm war:
Der Trick ist das
quelle
}
anstelle von]
?}
stimmt und mein Programm funktioniert (soweit ich weiß) in jeder Version von Element.Jolf , 5 Bytes, geknackt
Ausgabe:
Alles ist entscheidend, und ich habe 1 von 5 gezeigt.
Originalcode:
Probieren Sie es online!
quelle
JavaScript (ES7), 10 Bytes, Gebrochen
Ausgabe
Code
Teste es jeden Abend in Firefox. Der Code ist eine anonyme Funktion. Dies wird wahrscheinlich einfach sein, da nur drei Zeichen versteckt sind, aber zumindest ist es kurz! : P
Mein ursprünglicher Code war:
aber nachdem ich meinen eigenen Code für eine Lösung brachial durchgesetzt hatte, wurde mir bald klar
könnte auch verwendet werden. Das funktioniert weil
quelle
**
das entsprichtMath.pow
, ich habe einige meiner eigenen Tests durchgeführt und sogar eine rohe Truppe eingesetzt. Das ist ziemlich schwer zu knacken!05AB1E, 4 Bytes ( geknackt )
Beispielausgabe:
Und für den Code:
Ich habe den letzten aufgedeckt. Sollte aber einfach genug sein, hatte ich es ziemlich schwer, eine Sequenz zu finden :(
Alle versteckten Zeichen können ausgedruckt werden.
quelle
MATL , 5 Bytes, geknackt
Versteckte Zeichen sind durch gekennzeichnet
%
.Ausgabe:
Die Eingabe
0
ist gültig.Originalcode:
das ist,
quelle
SWIFT, 55 Bytes, Gebrochen
*
markiert ein verstecktes ZeichenAusgabe:
Funktion akzeptiert
0
quelle
Ruby, 46 Bytes, sicher
Bearbeiten, um Haftungsausschluss / Entschuldigung hinzuzufügen: Diese Sequenz beginnt mit f [0], während der OEIS-Eintrag mit f [1] beginnt. Die Werte sind gleich.
Verschleierter Code (
#
ist ein beliebiges Zeichen):Rufen Sie gerne an
Ausgabe:
Lösung:
Reihenfolge:
Erläuterung:
quelle
05AB1E , 3 Bytes, geknackt
Ausgabe:
Versteckter Code:
Versuchen Sie es online könnte sich als nützlich erweisen.
quelle
Hexagony , 7 Bytes, geknackt
Ausgabe:
Versteckter Code:
Oder alternativ:
Versuchen Sie es online könnte sich als nützlich erweisen.
quelle
0
?PHP, 41 Bytes, geknackt
Ja, endlich eine weitere Herausforderung für Cops and Robbers. Hoffe, ich habe es nicht zu einfach gemacht.
Ausgabe
Quelle
Anmerkungen
Geknackt
Ich habe es offensichtlich zu einfach gemacht und nicht genug Beispiele geliefert. Die Sequenz, die ich mir vorgestellt hatte, war A010054 :
Hier ist mein ursprünglicher Quellcode:
Es prüft, ob die Eingabe eine Dreieckszahl ist und gibt sie aus
1
oder0
dementsprechend.quelle
Jolf, 11 Bytes, Gebrochen , A011551
Originalcode:
Beispiele:
quelle
MATL, 9 Bytes, Gebrochen
Code:
Ausgabe:
a(0)
ist gültig.Geknackt
Originalsequenz: A059563
Originalcode:
quelle
Java, 479 Bytes, Gebrochen
Ausgänge:
(Eingaben werden über Befehlszeilenargumente bereitgestellt)
Code (
#
markiert versteckte Zeichen):Das Programm startet bei Index 0.
(Beachten Sie, dass SE alle
\t
Einrückungen durch 4 Leerzeichen ersetzt und die Bytesumme auf 569 erhöht. Klicken Sie hier , um das Programm mit\t
Einrückungen anstelle von Leerzeichen anzuzeigen.)Originalcode:
(Gleicher Code, aber normal formatiert):
quelle
i
bis}
? Und bitte 0-Toleranz angeben.a(9)
unda(19)
odera(8)
unda(18)
, nach welcher Version von OEIS, die Sie genommen haben?Oktave, 34 Bytes, geknackt
Ausgänge:
Die Sequenz beginnt um
ans(1)
in OEIS.quelle
C, 71 Bytes geknackt
Ausgabe:
Dies funktioniert mit gcc und ist ein volles Programm. Es akzeptiert 0 als Eingabe.
quelle
Pyth, 70 Bytes, Gebrochen
#
sind die versteckten ZeichenWurde geknackt, so ist hier die versionn ohne versteckte Zeichen:
Beispielausgaben:
Viel Glück, dies auf OEIS zu finden, ich persönlich habe es aus diesen Beispielen nicht herausgefunden (auch wenn die Sequenz ziemlich leicht zu erkennen ist.)quelle
Ruby, 38 Bytes, geknackt
Verschleierter Code (
#
kann ein beliebiges Zeichen sein):Ausgabe:
Multipliziert die Eingabe mit 10 (A008592). Funktioniert für jede Ganzzahl, einschließlich 0. zB
quelle
05AB1E , 5 Bytes, geknackt
Ausgabe:
Verschleierter Code:
Probieren Sie es online! -Verknüpfung.
quelle
05AB1E , 4 Bytes, geknackt
Nun, ich glaube, ich bin süchtig nach CnRs ... Verschleierter Code (
_
zeigt einen Joker an):Reihenfolge:
Die Sequenz in OEIS beginnt bei a (1) = 2.
Probieren Sie es online! -Verknüpfung
quelle
Lua, 45 Bytes, Gebrochen
Ein kleiner Hinweis:
Ausgabe
Code
Verwendet
#
, um den Code zu verbergen :).Ich habe den OEIS A007814 mit dem folgenden Code verwendet:
quelle
Pyke , 15 Bytes, SICHER
Ausgabe
Aufgedeckter Code:
Lösung:
quelle
C, 82 Bytes, sicher
Funktioniert mit gcc und ist ein vollständiges Programm, das seine Eingabe von stdin liest und seine Ausgabe an stdout ausgibt. Hier ist die Sequenz
A004526, Etage (n / 2).Lösung:
Dies funktioniert nur auf kleinen Endian-Rechnern und nur, wenn die Größe
char
1 Byte beträgt.Und nur wenn das höherwertige Byte den
a
Wert 0 hat. Ich denke, dies gilt für gcc, da standardmäßig nicht initialisierte globale Variablen in das Segment bss und initialisierte globale Variablen in das Datensegment gehen (siehe https: // stackoverflow.com/questions/8721475/if-a-global-variable-is-initialized-to-0-will-it-go-to-bss ). Gehtalso nur
a
in bss (die einzige andere globale Variableb
wird initialisiert und geht somit in das Datensegment). Befindeta
sich das Byte nicht am Ende von bss, dann befindet sich auch das Byte, das höher als das höchstwertige Byte vona
ist, in bss und hat somit den Wert 0.quelle
05AB1E, 1 Byte, geknackt
_
bezeichnet versteckten Code.quelle
Element , 10 Bytes, geknackt
Ausgabe:
Es gibt wahrscheinlich nur wenige Möglichkeiten, diese Sequenz in Element zu berechnen. Ich habe eine 9-Zeichen-Lösung gefunden, aber ich dachte, diese 10-Zeichen-Lösung ist tatsächlich schwieriger. Das
#
sind versteckte Zeichen.Der Einfachheit halber finden Sie hier die Wiki- Seiten Try It Online und Esolang .
Das Original war
quelle
Pyth , 18 Bytes
#
markiert nicht aufgedeckte Zeichen.Ausgänge (ab
1
):Online-Dolmetscher
quelle
05AB1E , 5 Bytes, geknackt
Ich hoffe, dass diese Einreichung nicht so einfach ist wie meine anderen: p. Ausgänge:
Verschleierter Code:
Enthält jedoch einige Nicht-ASCII-Zeichen, die verwendet werden CP-1252- Codierung.
Probieren Sie es online! könnte sich als nützlich erweisen: p.
quelle
Jolf , 11 Bytes, Gebrochen .
Ausgabe:
Und der teilweise versteckte Code:
Hinweis:
Die geknackte Version stimmt nicht ganz mit meinem ursprünglichen Code überein. Ich bin zurzeit nicht an meinem Computer, habe ihn also nicht genau, aber er war ungefähr so:
(Der einzige Teil, bei dem ich mir nicht sicher bin, ist der
!m
. Es wird geprüft, ob eine Variable Null ist.)quelle
Pyke , 6 Bytes, Gebrochen
Ausgabe:
Dies funktioniert nicht mit N <1
Ursprüngliche Lösung:
quelle