Twoim zadaniem jako gliniarzy jest wybranie trzech rzeczy:
Język programowania
Sekwencja OEIS
Zestaw bajtów
Następnie musisz potajemnie napisać program w tym języku, który oblicza n-tą sekwencję terminów, używając tylko bajtów w zestawie. Ujawnisz trzy informacje, aby złodzieje mogli spróbować znaleźć program.
Odpowiedzi zostaną ocenione według liczby bajtów w zestawie bajtów, przy czym więcej punktów będzie dobrych. Pęknięte odpowiedzi mają automatyczny wynik równy 0. Jeśli Twoja odpowiedź nie zostanie spakowana po tygodniu, możesz ujawnić zamierzony program i oznaczyć swoją odpowiedź jako „bezpieczną”.
Odpowiedzi muszą być zdolne do obliczenia każdego terminu w plikach b sekwencji, ale nie są wymagane do obliczenia żadnych terminów później.
Sekwencje mogą być indeksowane 1 lub 0 zarówno dla gliniarzy, jak i rabusiów.
Oto skrypt w języku Python, który sprawdza, czy kod pasuje do podanego zestawu bajtów.
źródło
A
je ab
i dodając a.txt
. Na przykład oeis.org/b4.txt uzyskałby dostęp do plików b dla tej sekwencji.Odpowiedzi:
Haskell , A209229 , ( pęknięty )
11 znaków (w tym nowa linia):
Zwraca True / False jako funkcję wskaźnika dla potęg 2:
Dane wejściowe są dodatnimi liczbami całkowitymi.
źródło
Python 2 , A000045 ( Cracked )
zawiera białe znaki i nowy wiersz
Wypróbuj online!
Zamierzone rozwiązanie
źródło
+
w ogóleplus
działał?sum
chciałbymHaskell, A000045 ( pęknięty )
Podjąłem decyzję, myślę, że lubię
t
bardziej niżs
.Użyjmy więc tych 30 bajtów (w tym nowego wiersza):
Należy pamiętać, że wymaga tego ogólny opis wyzwania
W tym przypadku plik b idzie do 2000-tej liczby, co znacznie wykracza poza to, co można obliczyć za pomocą
Int
.źródło
Oktawa, A000290 , Pęknięty !
Sekwencja to liczby kwadratowe: 0, 1, 4, 9, 16, 25, 36, 49 ... (abyś nie musiał sprawdzać linku).
źródło
Haskell, A000045 ( pęknięty )
Wszyscy lubią liczby Fibonacciego, lubię Haskell ...
Starannie wybrałem dla ciebie 30 bajtów: oprócz małych liter
f
,i
a zamiast tegot
otrzymujesz wielkie literyF
iT
symbol potoku|
oraz trzy symbole=()
i znak nowej linii. Oto znowu:źródło
Haskell, A034262 , 43 bajty, pęknięty
!"#%',.=?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_{|}~
Oblicza
a(n) = n³ + n
.źródło
Int
wystarczająco dobry?Haskell, A009056 ( pęknięty )
Kolejny prosty, teraz znowu z wystarczającą liczbą liter, aby wyglądał jak zwykły Haskell i być może zdziwisz mnie, znajdując rozwiązanie zupełnie inne niż moje.
Sekwencja to Liczby> = 3, a zestaw znaków składa się z tych 30 bajtów:
Crack ma kilka fajnych technik. Właśnie o tym myślałem:
źródło
C (C99), A000005 , 25 Bytes #, pęknięty!
Są to bajty pełnego problemu, biorą n jako argument wiersza poleceń i wypisują odpowiedź na standardowe wyjście (spacja jest uwzględniona w bajtecount).
źródło
Unary , A002275 , 1 bajt
Zestaw bajtów:
Musiałem przynajmniej spróbować: 3
(Nie sądzę, aby było to szczególnie trudne, ponieważ każde polecenie w języku jest dostępne)
źródło
Perl 5, A000030 (Cracked)
Byte set:
Try it online!
źródło
JavaScript (ES6), 17 bytes, A000290 (Cracked)
Again, this is the simple square sequence a(n) = n2.
Byte set:
źródło
Hexagony, A057077, 77 bytes
Periodic sequence
1, 1, -1, -1
. As a list:Character set (edited), which includes a newline and a space character:
Try it online!
źródło
Haskell, A000045 (cracked)
It's cracked, and I won't start a new version, but if you want to play more: it's possible without
y
, and it's possible to be efficient.I apologize for leading you in wrong directions by giving a
g
. Let's do the same without!Here are the 29 remaining bytes (including newline):
Again, remember that
Int
won't be enough to compute the 2000th Fibonacci number which is needed because it is in the b-file.źródło
Haskell, A000045 (cracked)
This is kindof (as announced) not a new version, but completely different. (Right?)
I still hope I can make you rediscover my nice little observation.
This time you are asked to implement the Fibonacci sequence using a charset of size 17, which (as far as I know) contains only
onetwo unneeded chars:Note that there is no newline (but feel free to show a version which has them for readability) and remember that you have to be able to compute the 2000th Fibonacci number.
źródło
Cubix, A000027 (SAFE) 17 points
My solution:
watch it online here
I originally did this without
.NSQ
but I figured I could add them safely.Explanation:
This sequence is just "The Positive Integers". However, Cubix has three input commands,
i
, which reads in a single char (pushing-1
if input is empty),A
, which reads in the rest of the input as chars (pushing a-1
to the bettom of the stack), andI
, which reads the next number off the input (pushing0
if there isn't a match). So naturally, I only providedi
which reads in digits as their ascii value. uh-oh. Additionally,-1
is the usual marker for end of input, in conjunction with?
so I got rid of?
, forcing me to use!
(skip next instruction if TOS is not zero) for control flow. Finally, I thought I needed&
to concatenate digits for printing withO
(which outputs the top of stack as a number), but I realize now that that wasn't necessary either!Another part of the challenge was originally to not have
.
the no-op character, but you can use pairs of!
instead if you're careful:i)
: read input, increment.!/
: if top of stack is zero (end of input), turn leftleft:
;O.@
: pop top of stack, output as number, halt.otherwise:
u'0
: push char code of0
to top of stack)-r
: increment, subtract, and rotate;;
: pop top of stack twiceu&
: concatenate digits!!
: net zero effect, now we are ati)
again.źródło
.
but it can be done without it.Seed, A005408 (Odd Numbers) - Safe
Here's a slightly more challenging one. You may use any characters valid in Seed:
You shouldn't be able to brute force this one in a week unless you have a monster of a computer. Good luck! It's crackable.
Hint
Solution
źródło
Python 2, A000045 (Cracked)
it contains a whitespace and a newline
Try it Online!
Intended solution
źródło
R, A000142, (Cracked)
Byte set:
Intended solution:
źródło
cQuents, A000027, Cracked
That's right! You get all of ASCII! Wait... there's no
$
... what's$
again in cQuents? Oh, yeah, the index builtin. Well, tough luck :/Intended Solution:
Try it online!
źródło
CJam, A000042, cracked by Lynn
Byte set:
źródło
Ruby, A000004, 5 bytes, Cracked
Just messing around to start off. Should be easy for anyone familiar with Ruby. It's a low score, but whatever.
Cracked, unintended exploit
Cracked (intended answer using
n
flag)źródło
n
flag (which is the reason it's in the byte sequence, and would make$.
equal 1)Python 3, A007504 (Cracked)
This byteset, including newline:
My code does not provide infinite output, but can compute the entire b-list.
źródło
.
:(R, A000290, (cracked)
Byte set:
źródło
c
, but everything else forfunction
? That's horrifying. I know how to do this except for reading in input...a
shouldve been ac
. sorry.Snowman, 212 bytes, A000042
... plus space, 0x00-0x1f inclusive, and 0x7f-0xff inclusive.
źródło
cQuents, A000217, Cracked
Byteset:
Note that this uses a feature that I haven't pushed the documentation for yet, so I'll push that tonight, if you wait until then. (Or you can slop through my source code... have fun).Documentation pushed. Would be a byte less if a recent bugfix was on TIO.Intended solution:
Try It Online!
źródło
JavaScript (ES6),
1310 bytes, A000045, CrackedThis should be easy.
This is the Fibonacci sequence: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.
Byte set:
Edit:
It can be even done with the following 10 bytes:
źródło
R, A105311, (Cracked)
Byte set:
źródło
Python3, A008615, Cracked
Bytemap (with newline):
źródło
Befunge, A000142, 29 Bytes, (Cracked)
If you can't tell, that Byte set includes a space.
This should be moderately easy to solve.
Edit: Forgot the "A" before the OEIS
źródło
R, A105311, (cracked)
Let's try this without the
l
oro
.Since this has been cracked, the intended solution:
źródło
%o%
before I realized that%x%
existed. I guess I could have done'i'=='i'
for1
but either way works, so.