Это задача полицейских и грабителей . Для нити грабителей, иди сюда .
Эта задача включает в себя две последовательности OEIS , выбранные полицейскими - S 1 , S 2 - и то, насколько хорошо эти последовательности можно обыграть и запутать.
Вызов ментов
Ваша задача как полицейского - выбрать свободно доступный язык и две последовательности OEIS. Затем напишите код A на том языке, который принимает входные данные n и выдает S 1 (n). Когда этот код модифицируется расстоянием Левенштейна из X символов (с X не более 0.5 * (length A)
) и превращается в код B на том же языке, он должен затем произвести S 2 (n). На самом деле вы должны написать этот код B , но не раскрывайте его, пока ваш вызов не будет безопасным (см. Ниже).
Представления полицейских должны включать название языка, полный код A , количество байтов A , значение X того, сколько изменений необходимо внести в их секретный код B , и выбранные порядковые номера S 1 и S 2 . Вы можете выбрать, будет ли каждая последовательность 0-индексированной или 1-индексированной, но укажите это в своем представлении.
Чтобы взломать конкретное представление, грабители должны создать программу C на том же языке (и в версии), которая производит S 2 (n) и символ Y меняется от A (с Y <= X
). Грабителям не обязательно нужно искать тот же самый B- код, который (тайно) сгенерировал полицейский.
Победа и выигрыш
Если ваш ответ полицейского не был взломан в течение 7 дней (168 часов), вы можете раскрыть свое собственное решение B , после чего ваш ответ считается безопасным. Пока вы не раскрываете свое решение, оно все равно может быть взломано грабителями, даже если 7 дней уже прошло. Если ваш ответ не получил ответа, укажите это в заголовке вашего ответа вместе со ссылкой на ответ соответствующего грабителя.
Менты выиграть, имея представление с без трещин кратчайших А . Если он привязан, то наименьший X будет использоваться как прерыватель связи. Если все еще связаны, более раннее представление выиграет.
Дальнейшие правила
- Вы не должны использовать какие-либо встроенные модули для хэширования, шифрования или генерации случайных чисел (даже если вы запрограммировали генератор случайных чисел на фиксированное значение).
- Разрешены либо программы, либо функции, но код не должен быть фрагментом кода, и вы не должны использовать среду REPL.
- Вы можете принимать и выводить данные в любом удобном формате . Методы ввода / вывода должны быть одинаковыми для обеих последовательностей.
- Окончательный калькулятор для расстояния Левенштейна для этой задачи - вот этот на Планете Calc.
- Это не только вызов CnR, но и код-гольф, поэтому применяются все обычные правила игры в гольф.
(0.5*len(A))