Это задача полицейских и грабителей , поток грабителей можно найти здесь .
Ваша задача - написать некоторый код, который выводит последовательность OEIS и содержит имя последовательности в коде ( A______
) и выводит вторую отдельную последовательность, когда имя последовательности в коде изменяется на имя второй последовательности.
Вот пример в Haskell, который работает для A000217 и A000290 .
f x|last"A000217"=='0'=x^2|1>0=sum[1..x]
Затем вы должны раскрыть одну из двух последовательностей и код, сохраняющий вторую последовательность в секрете. Грабители попытаются выяснить, что такое скрытая последовательность. Если грабителю удастся определить, какая у вас последовательность (или другая последовательность, которая соответствует критериям), на которую вы отвечаете, это будет взломано. Если никто не сделает этого в течение недели после публикации вашего ответа, вы можете пометить его как Безопасный и указать предполагаемое решение для проверки. Безопасные ответы не могут быть взломаны.
Ввод, вывод
Взято отсюда
Ваш код может быть функцией или полной программой, которая принимает n с помощью стандартного метода ввода и выводит n- й член последовательности, как указано в указанном индексе на странице OEIS.
Вы должны поддерживать все значения, указанные в файлах OEIS b для этой последовательности, любое число, отсутствующее в файлах b, не должно поддерживаться.
счет
Ваша оценка будет равна количеству байтов в вашем коде, а меньшее количество байтов будет лучше.
источник
Ответы:
Python 3, 59 байт, A162626 , взломан Wheat Wizard
Это
какдолжно было бы невозможно, не так ли?источник
Python 3 , 62 байт, A017016 ( Cracked )
Попробуйте онлайн!
источник
Japt , 13 байт ( треснувший )
Существует (по крайней мере) еще одно решение, если кто-то еще хочет нанести удар.
Попробуй онлайн
A000012
объяснение
источник
(sum_of_numbers_in_oeis(excluding 'A') + 1)%4
. : DMATL ,
3029 байт ( треснувший )A077430
Попробуйте онлайн!
-1 байт благодаря @Sanchises
источник
I
на 1 байт.I
, инициализируется 3l
(один) иO
(ноль), вам почти никогда не придется использовать пробел в ваших программах MATL. В соответствующей заметке также ознакомьтесь с таблицей 7, в которой содержится много полезных предопределенных констант (хотя имейте в виду, что, например, у них4X2Z%
есть сокращение1Z%
)C #, 28 байт ( треснувший )
Работает с A000290 .
Легко начать.
Попробуйте онлайн!
источник
Python 2, 43 байт, A000079 ( Cracked )
Попробуйте онлайн
источник
C #, 75 байтов, ( треснувший )
A000244
Попробуйте онлайн!
источник
% 2
- так что программа может буквально делать только две вещи , в зависимости от результата этого: один для0
и один для1
. Таким образом, я поставил нечетное число на его место, и задача вроде как взломала себя.Python 2 , 53 байта, A000012 [взломан]
Попробуйте онлайн!
источник
Python 3, 65 байт, A000027, взломан
Уу сумасшедшая арифметика!
источник
n=12
что выглядит правильно, но результат будет отклоняться на один индекс - я взломал с ошибкой или упал на очень умную красную сельдь?a(n) = floor(n/2)
; перечисленная последовательность начинается с 0. Однако это и есть предполагаемое решение.Smalltalk, 148 байт, безопасно!
A018253
Принимает целое число в качестве входных данных, последовательность основана на 1.
источник
Haskell, 226 байт, безопасно!
Не уверен, умный или уродливый, может быть, оба ...
Итак, теперь он вычисляет A001906 , но он должен быть в состоянии генерировать много последовательностей.
Попробуйте онлайн!
Решение: A131078
Хотите знать, было ли это слишком сложно или никто не пытался?
o 1
чтобыo 6
те цифры номера серии,m
список операций.l
является рекурсивно определенным бесконечным списком с первыми двумя значениями, полученными из номера серии, а остальные вычисляются из предыдущих двух с использованием фиксированной операции fromm
. В случае A001906 определение можно упростить до(flip(+))
является (обычно) тем же самым(+)
, и мы получаем хорошо известное (но не самое короткое) определение чисел Фибоначчи. Эта схема рекурсии может напрямую вычислять A001906, но для этого требуется более сложная операция, чем вm
. Другой пример: используя начальные значения1
и,2
и операция(*)
дает серию A000301 . Он вычисляется нашим кодом, когда номер серии заменяется на?103206
.Наконец, функция
f
индексируется в спискеl
, но только после некоторого преобразования ввода. Для A001906 средняя часть уменьшается до(*)2
, так что мы получаем только числа Фибоначчи на четных позициях. Правая часть становитсяflip const 1
, которая является функцией идентичности и больше не мешает.Для решения
A131078
, исходные значенияl
являются1
и0
, и операцияflip const
, которая позволяетl
быть1,0,1,0,...
. Средняя частьf
становится(flip div 4)
, в результате1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,...
. Это выглядело как хороший ответ, но затем я увидел, что начинается с A131078n=1
, поэтому я добавил правую частьf
, которая здесьflip(-)1
вычитает одну.Моя идея состояла в том, чтобы сделать его немного запутанным, используя
m
и индексируя в нем цифры из номеров серии, затем он стал более запутанным (сложные термины), чтобы заставить его работать (возможно, я не долго искал альтернативы); и затем это стало еще более запутанным (правильная частьf
), чтобы заставить это действительно работать. Тем не менее, я думаю, что некоторые догадки и попытки могли бы сломать это.источник
0
. Это хорошо, потому что это только начинается в1
! Начиная с1
также следует удалить некоторые ошибки «деление на ноль». Я удивлен примерами, которые работают вечно. Может быть, преобразование индекса создает очень большие значения в этих случаях ...постоянный ток , 52 байта, трещины
Этот работает с A000217 :
Попробуйте онлайн!
источник
Python 3.6, 114 байт, взломан
A005843
g(n)
возвращает n-ое значение последовательности для n> = 0.random.choices(s,k)
является новым в Python 3.6, он возвращаетk
элементы, выбранные изs
с заменой.источник
Чип , 67 байт, взломанный Иминь Ронг
A000012 . Немного дерзкий, да.
Попробуйте онлайн!
Использует байты для ввода / вывода, поэтому я был хорош и создал оболочку bashy / pythony.
,
источник