Это несколько корректуры гольф -как копы-и-разбойники вызов. Это нить полицейских; нить грабителей здесь.
Менты
Ваша задача - определить абстрактную систему переписывания, в которой трудно определить достижимость одного слова из другого. Вы подготовите следующие вещи:
Набор символов, называемый алфавитом. (Вы можете использовать любые символы Юникода для них, но, пожалуйста, не используйте пробелы или символы, которые трудно отличить друг от друга.)
Исходная строка состоит из символов из вашего алфавита.
Целевая строка состоит из символов из вашего алфавита.
Набор правил переписывания с использованием символов вашего алфавита. (См. Ниже определение правила перезаписи.)
Доказательство того, что исходная строка может быть преобразована в целевую строку путем последовательного применения правил перезаписи. Это доказательство может состоять из фактической последовательности шагов перезаписи, или математического доказательства того, что такая последовательность должна существовать, или математического доказательства того, что такая последовательность не существует.
Вы опубликуете первые четыре из них, сохраняя доказательства в секрете; грабители попытаются взломать ваш ответ, предоставив собственное доказательство того, что ваша целевая строка может или не может быть достигнута из вашей исходной строки. Если ваша заявка не была взломана в течение двух недель , вы можете пометить ее как безопасную и отредактировать в своем доказательстве.
Материалы будут оцениваться в соответствии с количеством символов в их правилах перезаписи, а также их исходной и целевой строками, как описано ниже. Победителем станет не взломанная заявка с самым низким счетом.
Что такое правило перезаписи?
Правило перезаписи - это просто пара строк в вашем алфавите. (Любая из этих строк может быть пустой.) Применение правила перезаписи состоит в том, чтобы найти подстроку, равную первой строке в паре, и заменить ее второй.
Пример должен прояснить это:
Предположим, алфавит есть 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
правила, так что в конечном итоге это будет намного сложнее, чем у Хофштадтера. оригинал.Ответы:
326 баллов - Трещины по jimmy23013
Уровень - Picokosmos # 13 от Aymeric du Peloux (с тривиальной модификацией). Я попытался найти со вкусом уровень, который мог бы быть реализован с «коробками» и «стенами», являющимися одним и тем же персонажем. Для этого уровня это было возможно, если сделать центральную заслонку двумя столбцами, а не одной.
Правила / начальные / целевые строки могут быть немного лучше, но это просто для удовольствия.
Начальная строка:
Целевая строка:
Правила:
источник
171 очко, взломанный HyperNeutrino
Источник:
YAAAT
Цель:
VW626206555675126212043640270477001760465526277571600601
Правила:
Просто что-то очевидное, чтобы сделать. Фактическая последовательность шагов перезаписи, вероятно, не будет соответствовать SE-ответу.
источник
VWx
гдеx
сформирован только из любой двоичной строки_
(0) и+
(1), которые оцениваются10*n+6
(включая ведущий_
;n
= неотрицательное целое число), ноx
данный (626...601
) формируется из двоичного кода, который оценивает чтобы10*n+3
(для большогоn
).33 очка, взломано пользователем71546
Простой, чтобы начать.
Источник:
xnor
Цель:
xor
Переписать правила:
Последнее правило занимает 11 o к пустой строке.
источник
139 баллов (безопасно)
Я хотел, чтобы этот ответ был взломан, и пользователь 202729 в основном решил его в комментариях, но никто не опубликовал ответ в ветке грабителей, поэтому я отмечаю его как «безопасный» и включаю мое доказательство ниже.
(Эти вещи, очевидно, гораздо проще сделать, чем взломать. Никто еще не пытался достичь действительно низкого балла, хотя, возможно, было бы гораздо веселее в этом конце, если этот вызов когда-нибудь взлетит. )
Вот и ответ сам. Это потенциально очень сложно, но должно быть легко, если вы решите, откуда это пришло.
алфавит:
ABCDEⒶⒷⒸⒹⒺⒻ⬛⚪️️🎂←→
источник:
←A→
цель:
←🎂→
Правила: (пробел не имеет значения)
Вот версия ASCII , на случай, если юникод не будет хорошо отображаться для всех.
доказательство
Это эквивалентно текущему лучшему сопернику для бобра, занятого в шести штатах . Занятый бобер - это машина Тьюринга, которая останавливается после очень долгого времени. Из-за этого исходная строка
←A→
действительно может быть преобразована в целевую строку←🎂→
, но только после нескольких7*10^36534
шагов, что займет намного больше времени, чем возраст вселенной для любой физической реализации.Лента машины Тьюринга представлена символами
⬛
(0) и⚪
(1). Правилаозначает, что концы ленты всегда могут быть расширены с большим количеством нулей. Если головка машины Тьюринга когда-нибудь окажется рядом с одним концом ленты, мы можем просто применить одно из этих правил, которое позволяет нам делать вид, что лента бесконечна и начинается со всех нулей. (Символы
→
и←
никогда не созданы или уничтожены, чтобы они всегда были на концах ленты.)Головка машины Тьюринга представлена символами
ABCDEⒶⒷⒸⒹⒺⒻ
и🎂
.A
означает, что голова в состоянии,A
а символ под головой -⬛
(0), тогда как Ⓐ означает, что он в состоянии,A
а символ под ним -⚪
(1). Это продолжается для других состояний, где обведенная буквой буква, представляющая 1 под головкой, и версия, не обведенная кружком, представляющая 0. (Нет символа,F
потому что случается так, что голова никогда не заканчивается в состоянииF
с 1 под ней.)Состояние
🎂
- состояние остановки. У него есть особые правилаЕсли состояние остановки когда-либо достигнуто, мы можем многократно применять эти правила, чтобы «всасывать» всю ленту (включая любые дополнительные нули, которые возникли в результате расширения ленты больше, чем необходимо), оставляя нас в этом состоянии
←🎂→
. Поэтому проблема достижимости сводится к тому,🎂
будет ли когда-либо достигнуто государство.Остальные правила - это правила перехода для машины Тьюринга. Например, правила
можно прочитать как «если машина находится в состоянии A, а под головкой есть ноль, то напишите 1, перейдите в состояние B и двигайтесь вправо». Перемещение вправо требует двух правил, потому что ячейка ленты справа может содержать a
⬛
, и в этом случае машина должна перейти в состояниеB
, или ячейка может содержать a⚪
, и в этом случае она должна перейти в состояниеⒷ
, так как⚪
под ней есть.По аналогии,
означает «если машина находится в состоянии D, а под головой есть 1, то напишите 0, перейдите в состояние C и двигайтесь влево».
Используемая машина Тьюринга была открыта Павлом Кропицем в 2010 году. Хотя ее часто упоминают в контексте занятых бобров, ее фактическую таблицу переходов немного сложнее отследить, но ее можно найти, например, здесь . Это можно записать как
что может быть прочитано как «если машина находится в состоянии A и под головкой есть ноль, то напишите 1, перейдите в состояние B и двигайтесь вправо» и так далее. Должно быть простым, если трудоемким, проверить, что каждая запись в этой таблице соответствует паре правил, как описано выше.
Единственное исключение - это правило,
1RH
которое возникает, когда машина находится в состоянии F, превышающем 0, потому что казалось совершенно бессмысленным заставлять машину писать 1 и двигаться вправо, когда она может просто сразу же остановиться, как только она когда-нибудь войдет в состояние F более 0. Таким образом, я изменил правило, которое было быв
Вот почему
F
в алфавите нет символа . (Есть некоторые другие «гольфы», которые я мог бы сделать, но я не хотел скрывать это слишком.)Это в основном это. Целевая строка достижима из исходной строки, но только после смешного количества шагов.
Еще один забавный факт: если бы я использовал
←A⚪⚪→
в качестве отправной точки, вместо этого потребуются не
7*10^36534
шаги для остановки, а10^10^10^10^18705352
шаги, что на самом деле очень большое число.источник
48 очков, трещины от bb94
Алфавит:
abc
Источник:
cbaabaabc
Цель:
cbacbcabc
Переписать правила:
источник
287 баллов, безопасно
Источник:
YAAT
Цель:
Правила:
Я обнаружил, что openssl гораздо проще использовать для этой цели, чем gpg.
Посмотрите трещину HyperNeutrino в более слабую версию. В этом случае число
C
s:И главные факторы:
Первое число mod 5 = 2, поэтому можно получить финальную строку.
источник
402 балла
Алфавит:
abcdefghijklmnopqrstu
Источник:
abcdoi
Цель:
ioabcdnnnnnnnnnnnnnnnnnn
Переписать правила:
Последнее правило позволяет вам создавать столько
n
s, сколько вам нужно.Уродливо, как кажется, это на самом деле довольно мило, так или иначе ...
источник
aoi:eog
этоeog
должно бытьeag
?1337 баллов
Определенно неконкурентоспособен и занял слишком много времени для создания (надеюсь, я не ошибся).
Подсказка:
Алфавит:
ABEILRSTabcdefijlr
Источник:
SIbbbbbbbdbffacebbfadbdbeecddfaeebddcefaddbdbeeecddaaaaadfaeeebdddcefbbfadbdbdbeeecdddfaeeebdddcefaddbdbeeecddaaaadfaeeebdddcefbfadbdbdbeeecdddfaeeebdddcbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaceefacdffacebdceeeeefadddddbdbeeeeeecddddddfaeeeeeebddddddceeefaddaeecdddbdbffacebfadbdbeecddfaeebddceeefadddbdbeeeecddddfaeeeebddddceefaddbdbeeecdddfaeeebdddceefadadbefadfacdbeecddfaeebddcefaeeefaddbdbeeecdddfaeeebdddcceecdfaeeaddceecefaeadcbefadfacecdfaebdcefaefaeeebdddcdcefaceeaaaaceefacdffacebdcecefacE
Цель:
SE
Перепишите правила:
источник
154 балла
Алфавит:
P.!xABC[{mD<
Источник:
[x!P.P...P..P.P....P..P.P.....P.P....P......P.P..P...P.P...Pm
(61 символ)Цель:
{CCCCC<
(есть 5C
с, поэтому 7 символов)Правила:
Есть 19 правил, общее количество символов = 67.
источник
106 баллов - взломанный HyperNeutrino
Алфавит:
ABCDEFGHIJ
Источник:
FIABCJAGJDEHHID
Цель:
F
Переписать правила:
Хорошо, HyperNeutrino доказал, что это неразрешимо. Однако есть и другое решение.
Возьмите:
Ценность источника четная. Значение цели нечетное. Если мы возьмем каждую сторону, суммируем значение и примем значение до мода 2, значения останутся прежними. Следовательно, это не может быть достигнуто.
источник