Ваша задача как полицейских состоит в том, чтобы выбрать три вещи:
Язык программирования
Последовательность OEIS
Набор байтов
Затем вы должны тайно написать программу на этом языке, которая вычисляет n-ю последовательность терминов, используя только байты из набора. Вы раскроете три части информации, чтобы грабители могли попытаться выяснить программу.
Ответы будут оцениваться по количеству байтов в наборе байтов, причем большее количество баллов будет хорошим. Взломанные ответы имеют автоматический балл 0. Если ваш ответ не был взломан через одну неделю, вы можете раскрыть предполагаемую программу и пометить ваш ответ как «безопасный».
Ответы должны быть способны вычислять каждый термин в b-файлах последовательности, но не обязаны вычислять какие-либо термины после.
Последовательности могут быть проиндексированы как 1, так и 0 как для полицейских, так и для грабителей.
Вот скрипт Python, который проверяет, соответствует ли ваш код заданному набору байтов.
источник
A
ab
и добавив a.txt
. Например, oeis.org/b4.txt получит доступ к b-файлам для этой последовательности.Ответы:
Haskell , A209229 , ( треснувший )
11 символов (включая перевод строки):
Выводит True / False как функцию индикатора для степеней 2:
Входные данные являются положительными целыми числами.
источник
Python 2 , A000045 ( треснувший )
он содержит пробелы и символ новой строки.
Попробуйте онлайн!
Предполагаемое решение
источник
+
вообщеplus
сработает?sum
быHaskell, A000045 ( треснувший )
Я принял решение, думаю, мне нравится
t
больше, чемs
.Итак, давайте вместо этого будем использовать эти 30 байтов (включая символ новой строки):
Обратите внимание, что общее описание вызова требует, чтобы
В этом случае b-файл поднимается до 2000-го числа, что намного больше того, что можно вычислить с помощью
Int
.источник
Октава, A000290 , Трещины !
Последовательность представляет собой квадратные числа: 0, 1, 4, 9, 16, 25, 36, 49 ... (так что вам не нужно проверять ссылку).
источник
Haskell, A000045 ( треснувший )
Все любят числа Фибоначчи, мне нравится Хаскелл ...
Я тщательно отобрал 30 байт для вас: строчных букв , за исключением
f
,i
иt
вы получите прописные буквыF
иT
и символ трубы|
вместо этого, и три символа=()
, и символ новой строки. Вот они снова:источник
Haskell, A034262 , 43 байта, трещины
!"#%',.=?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_{|}~
Вычисляет
a(n) = n³ + n
.источник
Int
достаточно хорошо?Haskell, A009056 ( треснувший )
Еще один простой, теперь снова с достаточным количеством букв, чтобы он выглядел как обычный Haskell, и, может быть, вы удивите меня, найдя решение, совершенно отличное от моего.
Последовательность Numbers> = 3, и кодировка состоит из этих 30 байтов:
Крэк имеет несколько приятных приемов. Я просто думал об этом:
источник
C (C99), A000005 , 25 байт #, треснул!
Это байты для полной задачи, принимает n в качестве аргумента командной строки и выводит ответ на стандартный вывод (пробел включен в byountount).
источник
Унарный , A002275 , 1 байт
Набор байтов:
Я должен был по крайней мере попробовать это: 3
(Я не думаю, что это будет особенно трудно увидеть, поскольку каждая команда на языке доступна)
источник
Perl , 5, A000030 ( Трещины )
Набор байтов:
Попробуйте онлайн!
источник
JavaScript (ES6), 17 байт, A000290 ( Cracked )
Опять же, это простая квадратная последовательность a (n) = n 2 .
Набор байтов:
источник
Hexagony , A057077 , 77 байтов
Периодическая последовательность
1, 1, -1, -1
. Как список:Набор символов (отредактированный), который включает символ новой строки и пробел:
Попробуйте онлайн!
источник
Haskell, A000045 ( треснувший )
Он взломан, и я не буду запускать новую версию, но если вы хотите играть больше: это возможно без
y
, и возможно быть эффективным.Я прошу прощения за ведение вас в неправильных направлениях, давая
g
. Давайте сделаем то же самое без!Вот 29 оставшихся байтов (включая перевод строки):
Опять же, помните, что
Int
этого будет недостаточно для вычисления 2000-го числа Фибоначчи, которое необходимо, потому что оно находится в b-файле.источник
Haskell, A000045 ( треснувший )
Это своего рода (как объявлено) не новая версия, но совершенно другая. (Правильно?)
Я все еще надеюсь, что смогу переоткрыть мое милое маленькое наблюдение.
На этот раз вас просят реализовать последовательность Фибоначчи, используя набор символов размером 17, который (насколько я знаю) содержит только
одиндва ненужных символа:Обратите внимание, что нет новой строки (но не стесняйтесь показывать версию, которая имеет их для удобства чтения) и помните, что вы должны быть в состоянии вычислить 2000-е число Фибоначчи.
источник
Cubix, A000027 (SAFE) 17 баллов
Мое решение:
смотреть онлайн здесь
Первоначально я делал это без,
.NSQ
но я решил, что могу добавить их безопасно.Объяснение:
Эта последовательность просто "Положительные целые числа". Тем не менее, Cubix имеет три команды ввода
i
, которые читаются в виде одного символа (нажатие,-1
если ввод пуст),A
которые читаются в остальной части ввода как символы (нажатие a-1
на вершину стека), иI
, который читает следующий номер с входа (нажатие,0
если нет совпадения). Естественно, я предоставил только то,i
что читается цифрами как их значение ascii. э-э-о. Кроме того,-1
это обычный маркер для конца ввода, в сочетании с которым?
я избавился?
, заставляя меня использовать!
(пропустите следующую инструкцию, если TOS не ноль) для потока управления. Наконец, я подумал, что мне нужно&
объединить цифры для печати сO
(который выводит вершину стека как число), но теперь я понимаю, что в этом тоже не было необходимости!Изначально другая часть задачи заключалась в том, чтобы не иметь
.
неактивного персонажа, но вы можете использовать пары!
вместо, если вы осторожны:i)
: чтение ввода, приращение.!/
: если вершина стека равна нулю (конец ввода), поверните налевоleft::
;O.@
выскакивает вершина стека, выводится как число, остановка.иначе:
u'0
: вставьте код символа0
в начало стека)-r
: увеличивать, вычитать и вращать;;
: поп вершина стека дваждыu&
: объединить цифры!!
: чистый нулевой эффект, теперь мы находимсяi)
снова.источник
.
но это может быть сделано без него.Seed , A005408 (Нечетные числа) - Сейф
Вот немного более сложный. Вы можете использовать любые символы, действительные в Seed:
Вы не должны быть в состоянии перебить это в течение недели, если у вас нет монстра компьютера. Удачи! Это можно взломать.
намек
Решение
источник
Python 2 , A000045 ( треснувший )
он содержит пробелы и символ новой строки.
Попробуйте онлайн!
Предполагаемое решение
источник
R, A000142 , ( Трещины )
Набор байтов:
Предполагаемое решение:
источник
cQuents , A000027 , Cracked
Это верно! Вы получаете все ASCII! Подожди ... нет
$
... что$
опять в cQuents? О, да, индекс встроен. Ну, удачи: /Предполагаемое решение:
Попробуйте онлайн!
источник
CJam, A000042 , взломанный Линн
Набор байтов:
источник
Рубин , A000004 , 5 байт, трещины
Просто возиться, чтобы начать. Должно быть легко для любого, кто знаком с Ruby. Это низкий балл, но что угодно.
Трещины, непреднамеренный подвиг
Трещины (предполагаемый ответ с использованием
n
флага)источник
n
флаг (по этой причине он находится в последовательности байтов и должен быть$.
равен 1)Python 3, A007504 ( Cracked )
Это байтсеть, включая перевод строки:
Мой код не обеспечивает бесконечного вывода, но может вычислить весь b-список.
источник
.
:(R, A000290 , ( треснувший )
Набор байтов:
источник
c
, а все остальное дляfunction
? Это ужасно Я знаю, как это сделать, за исключением чтения во входных данных ...a
был бытьc
. извиняюсь.Снеговик , 212 байтов, A000042
... плюс пробел, 0x00-0x1f включительно и 0x7f-0xff включительно .
источник
cQuents , A000217 , Cracked
Byteset:
Обратите внимание, что здесь используется функция, для которой я еще не выдвинул документацию, поэтому я добавлю ее сегодня вечером, если вы подождете до тех пор. (Или вы можете просмотреть мой исходный код ... повеселиться).Документация выдвинута. Было бы на байт меньше, если бы недавнее исправление было на TIO.Предполагаемое решение:
Попробуйте онлайн!
источник
JavaScript (ES6),
1310 байт, A000045 , взломанЭто должно быть легко.
Это последовательность Фибоначчи: F (n) = F (n-1) + F (n-2) с F (0) = 0 и F (1) = 1.
Набор байтов:
Редактировать:
Это может быть сделано даже со следующими 10 байтами:
источник
R, A105311 , ( Трещины )
Набор байтов:
источник
Python3, A008615 , Cracked
Bytemap (с новой строкой):
источник
Befunge , A000142 , 29 байт (с трещинами )
Если вы не можете сказать, что набор байтов содержит пробел.
Это должно быть в меру легко решить.
Редактировать: Забыл "A" перед OEIS
источник
R, A105311 , ( треснувший )
Давайте попробуем это без
l
илиo
.Так как это было взломано, предполагаемое решение:
источник
%o%
до того, как понял, что%x%
существует. Я предполагаю , что я мог бы сделать'i'=='i'
для1
но так или иначе работает, так.