В очень необычной аварии с участием небольшого образца радия, кита на электрическом стуле и трех липких медведей часть исходного кода The Management ™ была видоизменена. Босс The Management ™ мало что знает, на самом деле ответственность за это взяли на себя полицейские, пытаясь помешать «злым» планам Management ™. Таким образом, Robbers® были наняты в попытке восстановить оригинальный код, потому что кому иногда не нравится быть злым?
примечание: эта проблема была в значительной степени вдохновлена Unscramble Исходный код .
Описание
Это задача полицейских и грабителей .
- В полицейских будет написать программу (мутантный код) , который выполняет задачи # 1 (а также написать программу , которая выполняет задачу # 2, но держится в секрете).
- В разбойниках будут пытаться переломить «мутацию» и изменить исходный код в код , который выполняет задачу # 2.
В этом вызове Задача № 1 будет выводить n
простое число th , а Задача № 2 будет выводить число n
Фибоначчи th (что в любом случае, по мнению Копов, является каким-то злым). Последовательность Фибоначчи определяется как ( n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...), а простые числа определяются как ( n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...).
Цель полицейских состоит в том, чтобы минимизировать разницу между программами, которые выполняют Задачу № 1 и Задачу № 2, не позволяя грабителям воссоздать код, который завершает Задачу № 2.
Полицейские правила
Полицейские напишут две программы (одну, которая завершает задачу № 1, и другую, которая завершает задачу № 2), и сделают следующую информацию общедоступной:
- Первая программа (который выводит
n
е простое число) - Редактировать расстояние Левенштейна между первой программой и второй программы
- Языка программирования , что обе программы написаны (должен быть тот же язык для обеих программ)
Следующие ограничения применяются к обеим программам:
- Они должны быть длиной не более 128 символов.
- Они должны использовать только печатный ASCII (плюс переводы строки, что также разрешено).
- Они должны занять менее 10 секунд
n=45
, и они не обязаны производить правильный вывод для любогоn>45
. - Они не должны использовать какие-либо хеширующие или криптографические функции.
Правила Грабителя
Грабитель попытается изменить программу полицейского (которая выполняет задачу № 1) на программу, которая выполняет задачу № 2 (не обязательно оригинальную программу, написанную полицейским) на расстоянии редактирования, указанном полицейским.
Уже взломанное представление не может быть взломано снова (только первый грабитель, взломавший представление, получает кредит).
После взлома, пожалуйста, сделайте следующее:
- Опубликуйте ответ на сопутствующий вопрос (ссылку) , указав язык, свое решение и ссылку на оригинальный ответ.
- Оставьте комментарий с текстом «Cracked», который ссылается на ваш опубликованный ответ.
- Отредактируйте ответ полицейского, если у вас есть права на редактирование (если у вас его нет, либо подождите, пока кто-то другой с необходимыми привилегиями сделает это за вас, либо предложите изменить).
счет
Если программа полицейского остается без изменений в течение 1 недели, полицейский может опубликовать исходный код, который выполняет задание № 2 (на указанном расстоянии редактирования), и с этого момента отправка считается "безопасной". Безопасная отправка, которая имеет наименьшее расстояние редактирования, победит. В случае ничьей побеждает самая короткая программа (оригинал, завершающий задание № 1). Если два представления все еще связаны, побеждает тот, который был опубликован ранее.
Если грабитель успешно взламывает представление полицейского, оценка грабителя увеличивается на расстояние редактирования этого представления. Например, грабитель, взломавший представление с расстоянием редактирования 3 и один с расстоянием 5, зарабатывает 8 очков. Грабитель с наибольшим количеством очков побеждает. В случае ничьей сначала выигрывает грабитель, набравший очки.