Це дещо доказове завдання для поліцейських та грабіжників, схожих на гольф . Це нитка копів; нитка грабіжників тут.
Копи
Ваше завдання - визначити абстрактну систему переписування, в якій досяжність одного слова від іншого важко визначити. Ви підготуєте наступні речі:
Набір символів, що називається алфавітом. (Ви можете використовувати для цього будь-які символи Unicode, але не використовуйте пробіли чи символи, які важко відрізнити один від одного.)
Вихідна рядок складається з символів з вашого алфавіту.
Цільова рядок складається з символів з вашого алфавіту.
Набір правил перезапису, використовуючи символи з вашого алфавіту. (Для визначення правила перезапису див. Нижче).
Доказ, що показує, чи можна ваш вихідний рядок перетворити у вашу цільову рядок шляхом послідовного застосування правил перезапису. Цей доказ може складатися з фактичної послідовності етапів перезапису, або математичного доказу, що така послідовність повинен існувати, або математичного доказу, що такої послідовності не існує.
Ви опублікуєте перші чотири з них, зберігаючи доказ таємницю; грабіжники спробують зламати вашу відповідь, надавши власний доказ того, що цільовий рядок може бути досягнутий або не може бути досягнутий з вихідного рядка. Якщо ваше подання не зламається протягом двох тижнів , ви можете відзначити його як безпечне та відредагувати у своєму підтвердженні.
Подання будуть оцінені відповідно до кількості символів у правилах їх перезапису та їх джерела та цільових рядків, як детально описано нижче. Переможцем стане неперевершене подання з найнижчою оцінкою.
Що таке правило перезапису?
Правило перезапису - це просто пара рядків у вашому алфавіті. (Будь-який із цих рядків може бути порожнім.) Застосування правила перезапису складається з пошуку підрядка, рівного першому рядку в парі, та заміни його на другий.
Приклад повинен пояснити це:
Припустимо, алфавіт є A
, B
і C
; вихідний рядок - " A
"; цільовим рядком є " C
", а правила перезапису є
A:B
B:BB
B:A
AA:C
то цільовий рядок доступний наступним чином:
A
B (using rule 1)
BB (using rule 2)
AB (using rule 3)
AA (using rule 3)
C (using rule 4)
Оцінка балів
Ваш рахунок буде
- довжина вихідного рядка,
- плюс довжина цільового рядка,
- плюс довжина всіх рядків, включених у правила перезапису,
- плюс один додатковий бал за кожне правило перезапису.
Якщо ви пишете свої правила перезапису з роздільником двокрапки, як зазначено вище, це лише загальна довжина всіх правил перезапису (включаючи роздільник), плюс довжини джерела та цільових рядків. Чим нижчий бал, тим краще. Кількість чітко виражених символів у вашому алфавіті буде використана для розриву зв’язків, менша кількість - краща.
Баунті
Я хотів би побачити відповіді, які дійсно мають низькі бали. Я присуджую 200 повторень за першу відповідь, що набрав менше 100 балів у цьому виклику і не зламається.
Mx -> Mxx
, щоб це в кінцевому підсумку було набагато складніше, ніж Hofstadter's оригінальний.