Это вызов копов и грабителей. Это нить полицейского. В потоке грабителя здесь .
Как полицейский, вы должны выбрать любую последовательность из OEIS и написать программу p, которая печатает первое целое число из этой последовательности. Вы также должны найти строку s . Если вы вставляете s где-то в p , эта программа должна вывести второе целое число из последовательности. Если вы вставите s + s в то же место в p , эта программа должна вывести третье целое число из последовательности. s + s + s в том же месте напечатает четвертый, и так далее, и так далее. Вот пример:
Python 3, последовательность A000027
print(1)
Скрытая строка составляет два байта .
Строка +1
, потому что программа print(1+1)
напечатает второе целое число в A000027, программа print(1+1+1)
напечатает третье целое число и т. Д.
Копы должны раскрыть последовательность, исходную программу p и длину скрытой строки s . Грабители взломают представление, найдя любую строку до этой длины и место, чтобы вставить ее, чтобы создать последовательность. Строка не должна соответствовать предполагаемому решению, чтобы быть действительной трещиной, а также местоположением, в которое она вставлена.
правила
Ваше решение должно работать для любого числа в последовательности, или, по крайней мере, до разумного предела, когда оно не в состоянии ограничить память, переполнение целого числа / стека и т. Д.
Победивший грабитель - это пользователь, который взламывает большинство представлений, причем тай-брейк первым достигает этого количества взломов.
Победивший коп - это коп с самой короткой строкой s, который не взломан. Tiebreaker - самый короткий р . Если нет непроверенных представлений, полицейский, у которого было решение, не взломанное для самых длинных побед.
Для того чтобы ваше решение было объявлено безопасным, ваше решение должно оставаться открытым в течение 1 недели, а затем раскрываться скрытая строка (и место для ее вставки).
s не может быть вложенным, оно должно соединяться сквозным образом. Например, если бы s было
10
, каждая итерация шла бы,10, 1010, 101010, 10101010...
а не10, 1100, 111000, 11110000...
Допустимо начинать со второго члена последовательности, а не с первого.
Если ваша последовательность имеет конечное число терминов, то переход к последнему термину может привести к неопределенному поведению.
Все криптографические решения (например, проверка хеша подстроки) запрещены.
Если s содержит символы не ASCII, вы также должны указать используемую кодировку.
источник
Ответы:
MATL , последовательность A005206 . Трещины на SamYonnou
Попробуйте онлайн!
Скрытая строка имеет 8 байтов .
источник
Python 2 , последовательность A138147 ( взломан )
Попробуйте онлайн!
Скрытая строка составляет 7 байтов . Последовательность идет:
источник
Кег , последовательность A000045
Скрытая строка составляет ≤ 6 байт (чтобы соответствовать обновленным правилам взлома)
источник
Трещины
Brain-Flak , последовательность A000290 (квадратные числа)Попробуйте онлайн!
Скрытая строка составляет 6 байтов .
Интересный факт:
Я «открыл» это свойство, играя в эту игру, основанную на умственных способностях . Скрытая строка была случайно сгенерированным элементом, который, как я обнаружил, был очень полезен.
источник
Java 8+, последовательность A010686 ( взломано xnor )
Лямбда-функция.
Скрытая строка ≤ 5 байт
источник
^2<<1
но это то же самое.Python 3 , последовательность A096582
Это действительно тривиально, так как раньше я не пробовал соревнования «Копы и грабители».
Скрытая строка составляет 3 байта.
источник
Pyret , последовательность A083420 , Cracked
Скрытая строка имеет 4 байта или меньше.
источник
Python 3 , последовательность A014092 - ( взломан )
Попробуйте онлайн!
Скрытая последовательность составляет 82 байта .
Мой предполагаемый код (который не основывается на гипотезе Гольдбаха) был:
Трещины на NieDzejkob , который использует Гольдбах Гипотезу , чтобы решить эту проблему в течение магических 42 символов. Отличная работа!
источник
Forth (gforth) , A000042 - ( треснувший )
Попробуйте онлайн!
Скрытая последовательность составляет 5 байтов , и она может легко обрабатывать сотни терминов.
Однобайтовое решение, которое прерывается из-за целочисленного переполнения, также возможно. На самом деле, я бы сказал, что это неловко тривиально. В то время как текст запроса, согласно некоторым интерпретациям, может позволить вам назвать это трещиной, я призываю вас не делать этого.
источник
V , последовательность A000290 . Треснувший коров шарлатан
Попробуйте онлайн!
Скрытая строка составляет 5 байтов .
источник
Настольный калькулятор , последовательность A006125
Скрытая строка ≤ 12 байт .
источник
Brain-Flak , последовательность A000984 (центральные биномиальные коэффициенты)
Попробуйте онлайн!
Скрытая строка имеет 36 байтов или меньше.
источник
Python 3 , A268575
Попробуйте онлайн!
Скрытая последовательность составляет 102 байта.
источник
Haskell , последовательность A083318 ( трещины )
Попробуйте онлайн!
Скрытая строка составляет 5 байтов . Последовательность идет:
источник
Brain-Flak , последовательность A000578 (номера куба)
Попробуйте онлайн!
Скрытая строка 16 байтов
источник
Трещины
cQuents , последовательность A003617Попробуйте онлайн!
Скрытая строка составляет 1 байт .
источник
Unefunge-98 (PyFunge) , последовательность A000108
Попробуйте онлайн!
Скрытая последовательность составляет 19 байтов .
источник
MATL , последовательность A000796 . Трещины на SamYonnou
Попробуйте онлайн!
Скрытая строка имеет 3 байта .
источник
Python 3 , A008574 , взломан xnor
Попробуйте онлайн!
Вставьте 4 байта для завершения A008574. A008574: a (0) = 1, после этого a (n) = 4n.
источник
AsciiDots , 36 байт, A019523
Попробуйте онлайн!
Скрытая строка имеет 12 байтов .
источник
Haskell , последовательность A014675 , взломанная Ними
Попробуйте онлайн!
Скрытая последовательность составляет 35 байтов .
Вот мое предполагаемое решение:
источник
VDM-SL , последовательность A000312
Скрытая строка имеет 33 байта или меньше
источник
Haskell, A000045 (Фибоначчи) - треснувший
У меня есть решение с колоссальными 23 байтами. Я не ожидаю, что это будет безопасно в течение длительного времени, но это было супер весело.
Решение:
источник
Java 8+ , 1044 байта, последовательность A008008 (Safe)
Попробуйте онлайн!
Может быть решена с помощью скрытой строки размером 12 . Можно определенно больше играть в гольф, но это никоим образом не выигрывает. Я просто хотел внести свой вклад из уважения к числу 8008.
Примечание: прежде чем кто-либо будет жаловаться, что последовательность жестко запрограммирована, я проверил это до первого члена, который отличается от жесткого кода (13-й член = 307), и он получает его правильно, хотя и медленно. Это также почему он использует
long
вместоint
, в противном случае он переполняется до этого срока.Обновление (12 июля 2019 г.) : обновлено, чтобы быть немного более производительным. Теперь вычисляет 13-й срок за 30 секунд на моем компьютере вместо 5 минут.
Обновление (17 июля 2019 г.) : исправлены ошибки для границ цикла для
g
функции и границ длины массива в нижней частиf
функции. Эти ошибки в конечном итоге должны были вызвать проблемы, но не настолько рано, чтобы их можно было обнаружить, просто проверив выходные данные. В любом случае, поскольку наличие этих ошибок в течение 5 дней в игре могло бы запутать некоторых людей настолько, что они не смогли решить эту загадку, я полностью согласен с продлением «безопасного» срока до 24 июля для этого представления.Обновление (18 июля 2019 г.) : После некоторого тестирования я подтвердил, что переполнения начинаются после 4-го члена последовательности и начинают влиять на достоверность выходных данных после 19-го члена. Кроме того, в программе, как написано здесь, каждый последующий член занимает примерно в 5 раз больше времени, чем предыдущий. 15 семестр занимает около 14 минут на моем компьютере. Таким образом, на самом деле вычисление 19-го семестра с использованием программы, как написано, заняло бы более 6 дней.
Кроме того, вот код с нормальным интервалом / отступом, поэтому его немного легче читать, если у людей нет IDE с автоматическим форматированием под рукой.
Решение
источник
Brachylog , 7 байт ( Brachylog SBCS ), A114018 ( Cracked )
Взломайте это онлайн!
Строка имеет 2 или менее байтов.
источник
b
довольно подозрительно ...C # (.NET Core), A003678, 29727 байт (безопасно)
Скрытая последовательность составляет 4 байта или меньше.
источник
.code.tio(1,284): error CS0103: The name 'CodeDomProvider' does not exist in the current context .code.tio(1,390): error CS0246: The type or namespace name 'CompilerParameters' could not be found (are you missing a using directive or an assembly reference?)
System.CodeDom
, она также создает файлы, чтобы она не работала на tioSystem.CodeDom
Пролог (SWI) , 28 байт, A011557 , сейф
Попробуйте онлайн!
(Я не совсем уверен, что считается полной программой для Пролога, но это работает как программа для TIO.)
Скрытая строка не должна превышать 5 байт.
Я немного удивлен, что это пережило неделю ... Скрытая строка
источник