Deine Aufgabe als Cops ist es, drei Dinge auszuwählen:
Eine Programmiersprache
Eine OEIS-Sequenz
Ein Bytesatz
Sie müssen dann heimlich ein Programm in dieser Sprache schreiben, das die n-te Termsequenz nur mit den Bytes in der Menge berechnet. Sie werden die drei Informationen enthüllen, damit Räuber versuchen können, das Programm herauszufinden.
Die Antworten werden nach der Anzahl der Bytes im Bytesatz bewertet, wobei mehr Punkte gut sind. Geknackte Antworten haben eine automatische Punktzahl von 0. Wenn Ihre Antwort nach einer Woche nicht geknackt ist, können Sie das beabsichtigte Programm aufdecken und Ihre Antwort als "sicher" markieren.
Die Antworten müssen in der Lage sein, jeden Ausdruck in den B-Dateien der Sequenz zu berechnen, müssen jedoch keine weiteren Ausdrücke berechnen.
Sequenzen können für Cops und Räuber entweder 1 oder 0 indiziert werden.
Hier ist ein Python-Skript , das prüft, ob Ihr Code mit dem angegebenen Bytesatz übereinstimmt.
quelle
A
durch a ersetztb
und ein angefügt wird.txt
. Zum Beispiel würde oeis.org/b4.txt auf die B-Dateien für diese Sequenz zugreifen.Antworten:
Haskell , A209229 , ( geknackt )
11 Zeichen (einschließlich Zeilenvorschub):
Gibt True / False als Indikatorfunktion für Potenzen von 2 aus:
Eingaben sind positive ganze Zahlen.
quelle
Python 2 , A000045 ( Gebrochen )
Es enthält ein Leerzeichen und eine neue Zeile.
Probieren Sie es online aus!
Beabsichtigte Lösung
quelle
+
bei allenplus
funktionieren?sum
würdeHaskell, A000045 ( geknackt )
Ich habe mich entschieden, ich denke ich mag
t
mehr alss
.Verwenden wir stattdessen diese 30 Bytes (einschließlich Zeilenvorschub):
Bitte beachten Sie, dass die allgemeine Herausforderungsbeschreibung dies verlangt
In diesem Fall steigt die B-Datei auf die 2000. Zahl, was weit über das hinausgeht, was mit berechnet werden kann
Int
.quelle
Octave, A000290 , Gebrochen !
Die Folge sind die quadratischen Zahlen: 0, 1, 4, 9, 16, 25, 36, 49 ... (damit Sie den Link nicht überprüfen müssen).
quelle
Haskell, A000045 ( Gebrochen )
Jeder mag Fibonacci-Zahlen, ich mag Haskell ...
Ich habe sorgfältig 30 Bytes für Sie ausgewählt: die Kleinbuchstaben außer
f
,i
undt
, um die Großbuchstaben bekommenF
undT
und das Pipe - Symbol|
statt, und die drei Symbole=()
und Newline. Hier sind sie wieder:quelle
Haskell, A034262 , 43 Bytes, geknackt
!"#%',.=?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_{|}~
Berechnet
a(n) = n³ + n
.quelle
Int
gut genug?Haskell, A009056 ( geknackt )
Ein weiteres einfaches, jetzt wieder mit genügend Buchstaben, um es wie gewöhnliches Haskell aussehen zu lassen, und vielleicht können Sie mich in Erstaunen versetzen, indem Sie eine Lösung finden, die sich von meiner völlig unterscheidet.
Die Sequenz ist Numbers> = 3 und der Zeichensatz besteht aus diesen 30 Bytes:
Der Riss hat einige schöne Techniken. Ich habe nur daran gedacht:
quelle
C (C99), A000005 , 25 Bytes #, geknackt!
Dies sind die Bytes für ein volles Problem, nehmen n als Befehlszeilenargument und geben eine Antwort auf stdout aus (Leerzeichen ist in bytecount enthalten).
quelle
Unär , A002275 , 1 Byte
Bytesatz:
Ich musste es zumindest versuchen: 3
(Ich denke nicht, dass es besonders schwierig sein wird, da jeder Befehl in der Sprache verfügbar ist.)
quelle
Perl 5, A000030 ( Gebrochen )
Bytesatz:
Probieren Sie es online!
quelle
JavaScript (ES6), 17 Byte, A000290 ( Gebrochen )
Auch dies ist die einfache Quadratfolge a (n) = n 2 .
Bytesatz:
quelle
Hexagony , A057077 , 77 Bytes
Periodische Abfolge
1, 1, -1, -1
. Als Liste:Zeichensatz (bearbeitet), der einen Zeilenumbruch und ein Leerzeichen enthält:
Probieren Sie es online!
quelle
Haskell, A000045 ( geknackt )
Es ist geknackt und ich werde keine neue Version starten, aber wenn Sie mehr spielen möchten: Es ist ohne möglich
y
und es ist möglich, effizient zu sein.Ich entschuldige mich dafür, dass ich Sie in die falsche Richtung geführt habe
g
. Machen wir das auch ohne!Hier sind die 29 verbleibenden Bytes (einschließlich Newline):
Denken Sie auch hier daran, dass dies
Int
nicht ausreicht, um die 2000. Fibonacci-Zahl zu berechnen, die benötigt wird, da sie in der B-Datei enthalten ist.quelle
Haskell, A000045 ( geknackt )
Dies ist irgendwie (wie angekündigt) keine neue Version, aber völlig anders. (Recht?)
Ich hoffe immer noch, dass ich Sie dazu bringen kann, meine nette kleine Beobachtung wiederzuentdecken.
Dieses Mal werden Sie gebeten , die Fibonacci - Folge mit einem charset der Größe 17 zu implementieren, die (soweit ich weiß) enthält nur
einezwei nicht benötigten Zeichen:Beachten Sie, dass es keine Zeilenumbrüche gibt (Sie können jedoch eine Version anzeigen, die diese zur besseren Lesbarkeit enthält) und dass Sie in der Lage sein müssen, die 2000. Fibonacci-Zahl zu berechnen.
quelle
Cubix, A000027 (SAFE) 17 Punkte
Meine Lösung:
schau es dir hier online an
Ich habe das ursprünglich ohne gemacht
.NSQ
aber ich dachte, ich könnte sie sicher hinzufügen.Erläuterung:
Diese Sequenz ist nur "The Positive Integers". Cubix verfügt jedoch über drei Eingabebefehle
i
, die ein einzelnes Zeichen einlesen (pushing,-1
wenn die Eingabe leer ist),A
den Rest der Eingabe als Zeichen-1
einlesen (pushing a bis zum Ende des Stapels) undI
das nächste Nummer von der Eingabe (drücken,0
wenn keine Übereinstimmung vorliegt). Also habe ich natürlich nur angegeben,i
welche Ziffern als ihr ASCII-Wert eingelesen werden. Oh, oh. Zusätzlich-1
ist der übliche Marker für das Ende der Eingabe in Verbindung mit?
?
, was ich beseitigt habe , und zwingt mich, den!
Kontrollfluss zu verwenden (nächste Anweisung überspringen, wenn TOS nicht Null ist). Schließlich dachte ich, ich&
müsste Ziffern zum Drucken mit verkettenO
(was die Spitze des Stapels als Zahl ausgibt), aber ich merke jetzt, dass das auch nicht nötig war!Ein anderer Teil der Herausforderung bestand ursprünglich darin, keinen
.
No-Op-Charakter zu haben, aber Sie können!
stattdessen Paare von verwenden, wenn Sie vorsichtig sind:i)
: Eingabe lesen, inkrementieren.!/
: Wenn die Oberseite des Stapels Null ist (Ende der Eingabe), biegen Sie links ablinks:
;O.@
:: oben im Stapel platzieren, als Zahl ausgeben, anhalten.Andernfalls:
u'0
: Zeichencode0
nach oben schieben)-r
: Inkrementieren, Subtrahieren und Drehen;;
: Pop oben auf dem Stapel zweimalu&
: verketten Ziffern!!
: Netto-Null-Effekt, jetzt sind wiri)
wieder dabei.quelle
.
aber es kann auch ohne getan werden.Seed , A005408 (Ungerade Zahlen) - Sicher
Hier ist eine etwas schwierigere. Sie können beliebige Zeichen verwenden, die in Seed gültig sind:
Sie sollten nicht in der Lage sein, diese in einer Woche zu erzwingen, es sei denn, Sie haben ein Monster von einem Computer. Viel Glück! Es ist knackbar.
Hinweis
Lösung
quelle
Python 2 , A000045 ( Gebrochen )
Es enthält ein Leerzeichen und eine neue Zeile.
Probieren Sie es online aus!
Beabsichtigte Lösung
quelle
R, A000142 ( rissig) )
Bytesatz:
Beabsichtigte Lösung:
quelle
cQuents , A000027 , Gebrochen
Korrekt! Sie erhalten alle ASCII! Warten Sie ... es gibt keine
$
... was$
wieder in cQuents? Oh ja, der Index ist eingebaut. Na, Pech gehabt: /Vorgesehene Lösung:
Probieren Sie es online!
quelle
CJam, A000042 , geknackt von Lynn
Bytesatz:
quelle
Ruby , A000004 , 5 Bytes, Gebrochen
Einfach rumspielen und loslegen. Sollte für jeden, der mit Ruby vertraut ist, einfach sein. Es ist eine niedrige Punktzahl, aber was auch immer.
Gebrochener, unbeabsichtigter Exploit
Gebrochen (beabsichtigte Antwort mit
n
Flag)quelle
n
Flag benötigt haben (aus diesem Grund ist es in der Byte-Sequenz und würde$.
gleich 1 machen)Python 3, A007504 ( Gebrochen )
Dieses Byteset, einschließlich Newline:
Mein Code liefert keine unendliche Ausgabe, kann aber die gesamte B-Liste berechnen.
quelle
.
:(R, A000290 , ( rissig )
Bytesatz:
quelle
c
, aber alles andere fürfunction
? Das ist schrecklich. Ich weiß, wie man das macht, außer dass man Eingaben liest ...a
hätte einc
. Es tut uns leid.Schneemann , 212 Bytes, A000042
... plus Leerzeichen, einschließlich 0x00-0x1f und einschließlich 0x7f-0xff .
quelle
cQuents , A000217 , Gebrochen
Byteset:
Beachten Sie, dass dies eine Funktion verwendet, für die ich die Dokumentation noch nicht gepusht habe. Wenn Sie bis dahin warten, werde ich diese Funktion heute Abend pushen. (Oder Sie können durch meinen Quellcode schlüpfen ... viel Spaß).Dokumentation gepusht. Wäre ein Byte weniger, wenn ein neuer Bugfix auf TIO wäre.Beabsichtigte Lösung:
Probieren Sie es online!
quelle
JavaScript (ES6),
1310 Bytes, A000045 , GebrochenDas sollte einfach sein.
Dies ist die Fibonacci-Sequenz: F (n) = F (n-1) + F (n-2) mit F (0) = 0 und F (1) = 1.
Bytesatz:
Bearbeiten:
Dies kann sogar mit den folgenden 10 Bytes erfolgen:
quelle
R, A105311 , ( Gebrochen )
Bytesatz:
quelle
Python3, A008615 , Gebrochen
Bytemap (mit Newline):
quelle
Befunge , A000142 , 29 Bytes, ( geknackt )
Wenn Sie nicht sagen können, enthält dieser Byte-Satz ein Leerzeichen.
Dies sollte mäßig sein leicht zu lösen sein.
Edit: Vergaß das "A" vor dem OEIS
quelle
R, A105311 , ( rissig )
Versuchen wir das mal ohne
l
odero
.Da dies geknackt wurde, ist die beabsichtigte Lösung:
quelle
%o%
bevor mir klar wurde, dass%x%
es das gibt. Ich glaube , ich hätte tun können ,'i'=='i'
für1
aber so oder so funktioniert, so.