Dada a saída do programa do policial ( o
), a contagem de bytes ( n
) e o número de bytes únicos ( c
) usados, cria um trecho de código correspondente n
com bytes de comprimento c
e bytes únicos que correspondem à saída do policial o
.
Este é o tópico da polícia . Poste soluções que devem ser quebradas aqui.
O segmento de ladrões está localizado aqui .
A polícia deve publicar soluções como esta:
#[Language], `n` Bytes, `c` Unique Bytes (c*n points) [Cracked](Link-To-Crack)
[Output]
---
(Optional spoiler)
Regras
- Você não pode receber nenhuma entrada para o seu programa.
- O programa deve usar pelo menos 1 byte, mas não pode exceder 255 bytes.
- A saída em si também é limitada a 255 bytes.
- O programa deve ter resultados de saída consistentes quando executado várias vezes.
- Se o seu envio não for quebrado dentro de sete dias, você poderá marcá-lo como "seguro".
- Ao marcar como seguro, publique a solução pretendida e marque-a como
c*n
. - Marque uma resposta como "segura" apenas se você realmente deseja +15 para uma resposta aceita; é mais divertido ver quanto tempo você pode ir.
- Ao marcar como seguro, publique a solução pretendida e marque-a como
Ganhando
- A postagem sem rachaduras com a menor
c*n
pontuação baixa ganha o thread do policial. - Isso será decidido após 10 respostas seguras, ou algumas semanas.
Ressalvas
- Se você se sentir convencido, poderá informar ao usuário o algoritmo usando uma tag de spoiler .
Envios sem rachaduras:
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
Urna de polvo mágico
fonte
fonte
Respostas:
Haskell , 173 bytes, 8 únicos, 1384 pontos, seguro
Parece que esta resposta deseja fornecer uma tag relevante para a pergunta, usando apenas 8 bytes diferentes.
Como sempre, sua solução deve funcionar sendo colada no bloco de código no TIO: Experimente online!
Solução
Sim, este é um código Haskell válido: Experimente online!
Como funciona
O sublinhado
_
é usado como curinga na correspondência de padrões de Haskell.'
é usado para caracteres, por exemplo'a'
. No entanto, ambos_
e'
também fazem parte dos caracteres permitidos para nomes de identificadores (dentro de algumas restrições, por exemplo,'
não pode ocorrer no início do nome). Portanto__
,_'
,_'_
,_''
e assim por diante são todos os nomes identificador válido. Usando alguns nomes mais descritivos, o código acima se tornaA primeira linha produz a sequência
"[tag:reverse_engineering]"
se cada variável for atribuída ao caractere correto. Esta atribuição é alcançado na segunda linha:['_'..]
produz a string"_`abcdefghijklmnopqrstuvwxyz{|}~ ... "
, bruxa é correspondida no padrão_:_:a:_:_:_:e:_:g:_:i:_:_:_:_:n:_:_:_:r:s:t:_:v:_
para obter a atribuição desejadaa='a'
,e='e'
e assim por diante.fonte
Brain-Flak, 62 bytes totais, 6 únicos, 372 pontos, Rachado
Aqui está a sua saída:
Há algo de especial nesse número, mas não está no OEIS ;)
Caso esteja pensando em usar uma ferramenta de computador para resolver isso, você está sem sorte, o jogador inteiro recebe 110 bytes para este número:
Experimente online!
Você terá que fazer isso manualmente.
Dicas
Aqui estão algumas dicas, vou revelar mais dicas úteis ao longo do tempo. Boa sorte!
Minha solução
Experimente online!
Isso usa um dos meus truques favoritos, o código
calcula o enésimo termo de A090809 . A submissão completa apenas preenche o código com um 97 para formar um número grande.
fonte
MATL , 6 bytes × 3 exclusivo = 18 pontos. Rachado
fonte
i.^(0:3)
não dá imprecisões pontuais em Octave flutuante, masJ4:q^
faz em MATL ...num2str(..., '%.15g ')
. Veja por exemplo aqui . Mas isso não acontece no MATL em execução no Matlab. A conclusão é quenum2str
funciona de maneira um pouco diferente no Matlab e no OitavaGelatina , 7 bytes × 6 únicos = 42 pontos, quebrados
Experimente online!
fonte
ḷ
, por exemplo. Agora é tarde demais, eu acho ...Malbolge , 15 bytes, 13 únicos, pontuação 195. Seguro!
Saídas:
Seguro! Código pretendido:
Experimente online!
fonte
JavaScript (ES8), 103 bytes, 42 exclusivos (4.326 pontos) [SAFE]
Hexdump de saída:
A pontuação é anormalmente grande, eu sei, mas de qualquer maneira acho que essa pode ser interessante de quebrar. O programa é uma função que retorna uma string (apenas para evitar confusão, isso não é REPL).
Suponho que não deve ser muito difícil, tudo se resume a encontrar o padrão.
Solução
Parece que foi difícil do que eu pensava, de acordo com o fato de que ninguém o havia rachado. Eu acreditava que pode haver várias soluções fáceis de criar. De qualquer forma, aqui está a solução pretendida:
Por algum motivo, ele não é exibido corretamente como um trecho de código. Aqui está o link do TIO .
fonte
Oitava, 13 bytes, 5 caracteres únicos, pontuação: 65. Seguro!
Este não deve ser muito difícil. Se você não quiser pular imediatamente para os mais difíceis, pode ser um bom primeiro desafio :)
Nota: Quando li a pergunta, pensei que dizia: Saída de um número, não saída de uma string. A saída é assim no TIO:
E ficará assim se você tiver
format long
ou você pode imprimi-lo assim:
O que eu tinha e explicação:
Simples assim. =)
Explicado:
Normalmente você escreveria isso como
prod('prodprod')
:, mas o Octave trata o que vem depois do nome da função como uma string (matriz de caracteres). Eles são implicitamente convertidos em seus valores ASCII e multiplicados juntos.fonte
MATL, 4 bytes, 4 únicos, 16 pontos. Rachado
Saída:
O que eu tinha:
fonte
Java 8 (programa completo), 97 bytes totais, 34 exclusivos, 3298 pontos ( Rachado por @RobertoGraham )
Saída:
NOTA: Este é um programa completo. Se funções na forma de
()->
forem permitidas:Java 8 (função lambda), 40 bytes totais, 18 exclusivos, 720 pontos ( rachado por @ user202729 )
Provavelmente é bem difícil, mas seja o que for ... Não é como se o Java ganhasse algo com essa quantidade de pontos de qualquer maneira ..
Dicas:
Solução pretendida:
Muito engraçado (e impressionante) como as duas rachaduras dadas são completamente diferentes do que eu tinha em mente, mas chapado para as duas bolachas!
fonte
MATL, 11 bytes, 10 unique, 110 points. SAFE!
Output:
Just to "help" you one the way:
This is the product of:
and it's one less than the
372884884433
rd prime.And here are some real tips. If it's not cracked in a few hours then I'll reveal the solution.
The real code:
Explanation:
fonte
Haskell, 10 bytes, 3 unique, 30 points, cracked
A nice number which contains every digit, though only 3 unique bytes are used.
The intended solution works by replacing the code part in the following TIO link: Try it online!
fonte
Haskell, 29 bytes, 15 unique bytes, 435 points, cracked
This is a string containing
3
73 times, and a single sneaky4
.The intended solution works by replacing the code part in the following TIO link: Try it online!
Edit: H.PWiz found a valid crack (which could even be golfed to 28 bytes), but not the intended solution.
Hints:
fonte
Mathematica, 8 bytes, 3 unique, 24 points Cracked
fonte
Explode, 9 total bytes, 4 unique, 36 points
Output:
Note that the documentation does not completely align with the implementation for this language - I wrote this one day and haven't touched it since, so any bugs in implementation that may exist are now definitely features.
Also, I do not think this language is Turing-complete, so you could probably brute force it, but that's boring.
I'll give you a sizable bounty if you can automate reverse-engineering output into optimally short Explode code.
fonte
Octave, 4 bytes, 3 unique, 12 points: cracked
Lets see how fast this one goes.
fonte
Pyth, 7 bytes, 6 unique, 7*6=42 total score
Check out the Pyth tips thread for inspiration ;)
fonte
Jelly, 3 bytes × 3 unique = 9 points, cracked
Try it online!
Another attempt at Jelly, this time more challenging I hope.
fonte
Alice, 9 bytes x 8 unique = 72 points Cracked
Try it online!
This one should be funny to crack
fonte
Excel, 22 bytes, 16 unique, 352 points, Cracked
This might not be very hard to crack but I get to use a function that I otherwise never get to use. Besides, the score won't win anything unless a lot of others get cracked.
fonte
PowerShell, 7 bytes, 5 unique = 35 points Cracked
Output:
fonte
Jelly, 8 bytes * 6 unique = 48 (Cracked)
You can try to crack it here.
fonte
Haskell, 30 bytes, 17 unique, 510 points, cracked
The intended solution works by replacing the code part in the following TIO link: Try it online!
This uses the same approach as my previous answer, which was cracked using a different approach.
Some hints:
fonte
Javascript,
11
Bytes,7
Unique Bytes (77 points) (Cracked)This should be really easy.
fonte
Jelly, 8 bytes, 2 unique, 8×2 = 16 points -- Safe!
(There are only 8,355,840 possible such programs so it should get cracked I guess.)
Get going at Try it online!
How?
fonte
°
, but didn't think about⁾
and thought you have to stick with starting from 0.⁽
is different from⁾
, they're not related in any way (except that they consume the two chars that follow).⁽
.Jelly, 4 bytes, 4 unique, 4 × 4 = 16 points -- Safe!
Note that the output is 255 bytes long, right at the limit.
Yep, same score as my other (as yet uncracked) Jelly entry.
Get going at Try it online!
How?
fonte
r
between two code-page index lists and concatenate with another code-page index list to get it down to 35 bytes, but there are also still repeated bytes there and 35 >> 4... good luck!C (two's complement machine, sizeof(int) = 4), 76 bytes and 35 unique bytes for a score of 2660, Safe
Output:
which is 203 bytes long.
fonte
main(i){for(;42>i;printf("%u","eirwtlegowvnfemuwphejsno"[abs(24-i++)]-'n'));}
'N'
to78
(char code ofN
).CJam, 15 bytes * 10 unique = 150 points
Bad score, but hopefully will be hard to crack.
Note: At the moment I have forgotten what the answer is. As such, I will keep it open until either I or somebody else is able to crack it.
fonte
CJam, 15 bytes * 10 unique = 150 points
Note: At the moment I have forgotten what the answer is. As such, I will keep it open until either I or somebody else is able to crack it.
fonte
Japt, 5 bytes, 5 unique bytes (25 points) (Cracked by Scrooble)
Output:
3628801
fonte
Perl 5, 31 Bytes, 18 Unique Bytes (558 points) -- safe
Intended solution (Try it online!):
(this calculates the factorial of 111)
fonte