Учитывая вывод программы полицейского ( o
), byte-count ( n
) и количество используемых уникальных bytes ( c
), придумали соответствующий фрагмент кода длиной в n
байты с c
уникальными байтами, который соответствует выводу полицейского o
.
Это нить ментов . Опубликуйте решения, которые можно взломать здесь.
Разбойники нить находится здесь .
Копы должны публиковать такие решения:
#[Language], `n` Bytes, `c` Unique Bytes (c*n points) [Cracked](Link-To-Crack)
[Output]
---
(Optional spoiler)
правила
- Вы не можете принимать какие-либо входные данные для вашей программы.
- Программа должна использовать как минимум 1 байт, но не может превышать 255 байт.
- Сам вывод также ограничен 255 байтами.
- Программа должна иметь согласованные выходные результаты при многократном выполнении.
- Если ваша заявка не была взломана в течение 7 дней, вы можете пометить ее как «безопасную».
- Помечая это как безопасное, опубликуйте предполагаемое решение и отметьте его как
c*n
. - Отметьте ответ как «безопасный», только если вы действительно хотите +15 за принятый ответ; веселее видеть, как долго ты можешь идти.
- Помечая это как безопасное, опубликуйте предполагаемое решение и отметьте его как
выигрыш
- Не взломанный пост с наименьшим количеством
c*n
очков, выигрывает нить полицейского. - Это будет решено после 10 безопасных ответов или нескольких недель.
Предостережения
- Если вы чувствуете себя дерзким, вы можете сообщить пользователю алгоритм, используя тег спойлера .
Uncracked Материалы:
fetch("https://api.stackexchange.com/2.2/questions/147635/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!/^#.*cracked/im.test(i.body_markdown)).map(x=>{const matched = /^ ?#{1,3} ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:.*(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).reverse().forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>
cops-and-robbers
Урна волшебного осьминога
источник
источник
Ответы:
Haskell , 173 байта, 8 уникальных, 1384 балла, сейф
Похоже, что этот ответ хочет предоставить соответствующий тег для вопроса, используя только 8 различных байтов.
Как обычно, ваше решение должно работать, вставив его в блок кода на TIO: попробуйте онлайн!
Решение
Да, это действительный код на Haskell: попробуйте онлайн!
Как это работает
Подчеркивание
_
используется в качестве символа подстановки в сопоставлении с образцом Хаскелла.'
используется для символов, например'a'
. Тем не менее, оба_
и'
являются также частью разрешенных символов для имен идентификаторов (В некоторых ограничениях, например,'
не может произойти в начале имени.). Поэтому__
,_'
,_'_
,_''
и так далее все действительные имена идентификаторов. Используя более описательные имена, приведенный выше код становитсяПервая строка возвращает строку,
"[tag:reverse_engineering]"
если каждая переменная назначена правильному символу. Это назначение достигается во второй строке:['_'..]
выдает строку"_`abcdefghijklmnopqrstuvwxyz{|}~ ... "
, которая сопоставляется с шаблоном,_:_:a:_:_:_:e:_:g:_:i:_:_:_:_:n:_:_:_:r:s:t:_:v:_
чтобы получить желаемое назначениеa='a'
,e='e'
и так далее.источник
Brain-Flak, всего 62 байта, 6 уникальных, 372 очка, Cracked
Вот ваш вывод:
В этом номере есть что-то особенное, но его нет в OEIS ;)
Если вы думаете об использовании компьютерного инструмента для решения этой проблемы, вам не повезло, целочисленный гольфист получает 110 байтов для этого числа:
Попробуйте онлайн!
Тебе придется сделать это вручную.
подсказки
Вот несколько советов, я покажу более полезные советы со временем. Удачи!
Мое решение
Попробуйте онлайн!
Это использует один из моих любимых трюков, код
вычисляет n-й член A090809 . Полное представление просто дополняет код 97 до большого числа.
источник
MATL , 6 байтов × 3 уникальных = 18 баллов. Трещины
источник
i.^(0:3)
не дает неточностей с плавающей запятой в Octave, ноJ4:q^
дает в MATL ...num2str(..., '%.15g ')
. Смотрите, например, здесь . Но этого не происходит для MATL, работающего на Matlab. Выводnum2str
Желе , 7 байт × 6 уникальных = 42 балла, трещины
Попробуйте онлайн!
источник
ḷ
, например. Теперь уже слишком поздно, я думаю ...Malbolge , 15 байтов, 13 уникальных, оценка 195. Безопасно!
Выходы:
Сейф! Предполагаемый код:
Попробуйте онлайн!
источник
JavaScript (ES8), 103 байта, 42 уникальных (4326 баллов) [БЕЗОПАСНЫХ]
Выходной hexdump:
Я знаю, что счет необычайно большой, но в любом случае я думаю, что этот может быть интересным для взлома. Программа представляет собой функцию, которая возвращает строку (просто, чтобы избежать путаницы, это не REPL).
Полагаю, это не должно быть слишком сложно, все связано с поиском шаблона.
Решение
Кажется, что это было тяжелее, чем я думал, согласно тому факту, что никто не взломал это. Я полагал, что может быть несколько решений, которые легко создать. В любом случае, вот намеченное решение:
По какой-то причине он не отображается должным образом как фрагмент кода. Вот ссылка TIO .
источник
Октава, 13 байт, 5 уникальных символов, оценка: 65. Безопасно!
Этот не должен быть слишком сложным. Если вы не хотите сразу переходить к самым сложным, это может быть хорошим первым испытанием :)
Примечание. Когда я прочитал вопрос, я подумал: «Выведите число, а не строку». Вывод выглядит так на TIO:
И будет выглядеть так, если у вас есть
format long
или вы можете напечатать это так:
Что у меня было, и объяснение:
Просто как тот. знак равно
Разъяснение:
Обычно вы пишете это как:,
prod('prodprod')
но Octave обрабатывает все, что идет после имени функции, как строку (массив символов). Они неявно преобразуются в их значения ASCII и умножаются вместе.источник
MATL, 4 байта, 4 уникальных, 16 баллов. Трещины
Выход:
Что у меня было:
источник
Java 8 (полная программа), 97 байт, 34 уникальных, 3298 баллов ( взломано @RobertoGraham )
Выход:
ПРИМЕЧАНИЕ. Это полная программа. Если
()->
вместо этого разрешены функции в форме :Java 8 (лямбда-функция), 40 байт, 18 уникальных, 720 точек ( Cracked by @ user202729 )
Это, наверное, довольно сложно, но что угодно .. Это не значит, что Java все равно выиграет с таким количеством очков.
подсказки:
Предполагаемое решение:
Довольно забавно (и впечатляюще), как обе указанные трещины совершенно отличаются от того, что я имел в виду, но вводная часть для обоих крекеров!
источник
MATL, 11 байтов, 10 уникальных, 110 баллов. СЕЙФ!
Выход:
Просто, чтобы «помочь» вам одним из способов:
Это продукт:
и это на единицу меньше, чем на
372884884433
первом.И вот несколько реальных советов. Если через несколько часов он не треснет, я найду решение.
Настоящий код:
Объяснение:
источник
Haskell , 10 байт, 3 уникальных, 30 баллов, взломан
Хорошее число, которое содержит каждую цифру, хотя используются только 3 уникальных байта.
Предполагаемое решение работает путем замены части кода в следующей ссылке TIO: попробуйте онлайн!
источник
Haskell , 29 байтов, 15 уникальных байтов, 435 точек, трещины
Это строка, содержащая
3
73 раза, и один подлый4
.Предполагаемое решение работает путем замены части кода в следующей ссылке TIO: попробуйте онлайн!
Изменить: H.PWiz обнаружил действительный трещины (который может быть даже гольф-до 28 байт), но не предполагаемое решение.
подсказки:
источник
Mathematica, 8 байт, 3 уникальных, 24 балла с трещинами
источник
взрываться , 9 байт, 4 уникальных, 36 очков
Выход:
Обратите внимание, что документация не полностью совпадает с реализацией для этого языка - я написал это однажды и с тех пор не затрагивал ее, поэтому любые ошибки в реализации, которые могут существовать, теперь определенно являются функциями.
Кроме того, я не думаю, что этот язык завершен по Тьюрингу, так что вы, вероятно, можете использовать его грубо, но это скучно.
Я дам вам значительную награду, если вы сможете автоматизировать обратный инжиниринг в оптимально короткий код Explode.
источник
Октава, 4 байта, 3 уникальных, 12 очков: трещины
Давайте посмотрим, как быстро это идет.
источник
Pyth, 7 байт, 6 уникальных, 7 * 6 = 42 общего балла
Проверьте поток подсказок Pyth для вдохновения;)
источник
Желе , 3 байта × 3 уникальных = 9 баллов, трещины
Попробуйте онлайн!
Еще одна попытка желе, на этот раз более сложная, я надеюсь.
источник
Алиса , 9 байт х 8 уникальных = 72 баллов треснувших
Попробуйте онлайн!
Это должно быть смешно, чтобы взломать
источник
Excel, 22 байта, 16 уникальных, 352 балла, Cracked
Это может быть не очень сложно взломать, но я использую функцию, которую иначе никогда не смогу использовать. Кроме того, счет ничего не выиграет, если не будут взломаны многие другие.
источник
PowerShell, 7 байт, 5 уникальных = 35 баллов Треснутых
Выход:
источник
Желе , 8 байт * 6 уникальных = 48 ( треснувший )
Вы можете попытаться взломать это здесь .
источник
Haskell , 30 байт, 17 уникальных, 510 точек, взломан
Предполагаемое решение работает путем замены части кода в следующей ссылке TIO: попробуйте онлайн!
Это использует тот же подход, что и мой предыдущий ответ , который был взломан с использованием другого подхода.
Некоторые намеки:
источник
Javascript,
11
байты,7
уникальные байты (77 баллов) (трещины)Это должно быть действительно легко.
источник
Желе , 8 байт , 2 уникальных, 8 × 2 = 16 баллов - безопасно!
(Есть только 8 355 840 возможных таких программ, поэтому я думаю, что они должны быть взломаны.)
Приступайте к работе онлайн!
Как?
источник
°
, но не думал⁾
и думал, что вы должны придерживаться, начиная с 0.⁽
отличается от них⁾
, они никак не связаны (за исключением того, что они потребляют два следующих символа).⁽
.Желе , 4 байта , 4 уникальных, 4 × 4 = 16 баллов - безопасно!
Обратите внимание, что длина вывода составляет 255 байт, прямо на границе.
Да, тот же счет, что и моей другой (пока не взломанной) записи Jelly .
Приступайте к работе онлайн!
Как?
источник
r
между двумя списками индексов кодовых страниц и объединить их с другим списком индексов кодовых страниц, чтобы уменьшить его до 35 байт , но там также есть повторяющиеся байты и 35 >> 4 ... удачи!C (два дополнительных компьютера, sizeof (int) = 4), 76 байтов и 35 уникальных байтов для оценки 2660, Безопасный
Выход:
длиной 203 байта.
источник
main(i){for(;42>i;printf("%u","eirwtlegowvnfemuwphejsno"[abs(24-i++)]-'n'));}
'N'
на78
(код символаN
).CJam, 15 байтов * 10 уникальных = 150 баллов
Плохая оценка, но, надеюсь, будет трудно взломать.
Примечание: на данный момент я забыл, каков ответ. Поэтому я буду держать его открытым до тех пор, пока я или кто-либо еще не смогу его взломать.
источник
CJam, 15 байтов * 10 уникальных = 150 баллов
Примечание: на данный момент я забыл, каков ответ. Поэтому я буду держать его открытым до тех пор, пока я или кто-либо еще не смогу его взломать.
источник
Japt , 5 байтов, 5 уникальных байтов (25 баллов) ( взломано Scrooble)
Выход:
3628801
источник
Perl 5 , 31 байт, 18 уникальных байт (558 баллов) - безопасно
Предполагаемое решение ( попробуйте онлайн! ):
(это вычисляет факториал 111)
источник