Це виклик копів та грабіжників. Це нитка розбійника. В нитка поліцейського тут .
Поліцейські виберуть будь-яку послідовність із 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 . Грабіжники розтріскують подання, знаходячи будь-який рядок до цієї довжини та місце, де його вставити, щоб створити послідовність. Рядок не повинен відповідати призначеному рішенню, щоб бути дійсним тріском, а також розташуванню, в яке він вставлений.
Якщо ви зламаєте одну з відповідей поліцейських, опублікуйте своє рішення (із виявленим прихованим рядком та місцем розташування) та посиланням на відповідь. Потім прокоментуйте тут відповіді поліцейських із посиланням на вашу тріщину.
Правила
Ваше рішення повинно працювати для будь-якого числа в послідовності, або принаймні до розумного обмеження, коли воно не вдається через обмеження пам'яті, переповнення цілого / стека тощо.
Розбійник-переможець - це той користувач, який тріщить більшість матеріалів, і тим самим той, хто першим дійшов до цієї кількості тріщин.
Виграючий коп - це поліцейський з найкоротшим рядком , який не тріщиться. Tiereaker - найкоротший p . Якщо немає неподілених подань, поліцейський, який мав рішення, що не було розірвано, виграє найдовше.
Для того, щоб оголосити його безпечним, ваше рішення повинно залишатися нерозкритим протягом 1 тижня, а потім відкрити приховану рядок (і місце для її вставки).
s може не бути вкладеним, він повинен об'єднатись у кінець. Наприклад, якщо s був
10
, кожна ітерація буде йти ,10, 1010, 101010, 10101010...
а не10, 1100, 111000, 11110000...
Усі криптографічні рішення (наприклад, перевірка хешу підрядки) заборонені.
Якщо s містить будь-які символи, що не належать до ASCII, ви також повинні вказати кодування, яке використовується.
%
ліворуч.