Um baralhamento riffle é uma maneira de baralhar cartas, onde o baralho é dividido em duas seções aproximadamente iguais e as seções são divididas entre si em pequenos grupos. É assim que você embaralha uma seqüência aleatória:
- Divida a sequência em seções iguais.
- Inverta as strings e inicie do início de cada string.
- Coloque execuções de um comprimento uniformemente aleatório entre 1 e o número de caracteres restantes na cadeia atual na cadeia final
- Em seguida, remova esses caracteres da string.
- Repita o procedimento para a outra metade, até que as duas metades estejam vazias.
Um exemplo
"Hello World!" Output string = ""
"Hello ", "World!" ""
"Hell", "World!" " o"
"Hell", "World" " o!"
"Hel", "World" " o!l"
"Hel", "Wo" " o!ldlr"
"H", "Wo" " o!ldlrle"
"H", "" " o!ldlrleoW"
"", "" " o!ldlrleoWH"
O produto final de Hello World!
poderia ser o!ldlrleoWH
e é isso que você produziria.
Policiais
Sua tarefa é criar um programa (ou função) que reproduza aleatoriamente uma sequência aleatória. Se a string inserida tiver um comprimento ímpar, apenas divida-a em duas cadeias de comprimento irregular com um comprimento relativo de +1
e +0
( abc => [ab, c] or [a, bc]
). Você pode receber entrada da maneira normal e produzir saída da maneira normal.
Seu envio de policiais consistirá em 4 itens
- O idioma que você usou
- O comprimento do seu programa em bytes
- Seu programa, riffle embaralhado.
- Qualquer outra coisa que você queira adicionar
Seu objetivo é impedir que seu código seja decifrado pelos ladrões por 7 dias. Após esse período, seu programa está seguro e você deve editar no seu programa original. Seu envio ainda pode estar quebrado até você revelar sua solução. A solução mais curta e segura será a vencedora!
fonte
Respostas:
Geléia, 11 bytes, Rachado
Esta é uma versão para golfe, para que alguém possa decifrá-la facilmente, apenas criando uma versão para golfe. Provavelmente existem algumas abordagens diferentes, mas suspeito que essa abordagem será decentemente comum em idiomas de golfe.
O hash SHA-384 do meu programa pretendido é
86025a659b3c5fc38e943f72b1f26e28e2e751a7118a589073f1d24fa61ff6b02753d6a0f3f0c7fee6555de69fd06a74
(usando a codificação UTF-8).fonte
> <> , 46 bytes
Quase não há ofuscação no código real, mas suspeito que uma linguagem 2D seja suficientemente difícil de decifrar.
Disclaimer: Escrito antes de ser especificado que tinha que ser uniformemente aleatório. Isso não é uniformemente aleatório, e não tenho certeza de como eu implementaria um algoritmo uniformemente aleatório em> <> para começar.
fonte
Python 3, 154 bytes (lista de caracteres -> lista de caracteres) (função) Cracked
Duvido que isso seja muito difícil de decifrar, especialmente porque o riffling já é bastante ineficaz (você pode ver componentes inteiros do programa na saída ...). Isto é principalmente apenas para fazer as coisas rolarem. Pode haver algum espaço em branco (incluindo novas linhas) que eu não copiei corretamente. O hash SHA-384 da minha solução pretendida é
5924530418bf8cd603c25da04ea308b124fdddfc61e7060d78b35e50ead69a7fbde9200b5ee16635cc0ee9df9c954fa1
.fonte
Röda , 118 bytes
Ele recebe um fluxo de caracteres como entrada e gera um fluxo de caracteres.
fonte
R , 283 bytes, Rachado
Agora percebo que escrever uma resposta mais longa tem mais "execuções" de caracteres preservados, infelizmente.
Boa sorte!
fonte
Pitão , 14 bytes, Rachado
Implementação Pyth bastante padrão para testar as águas. Pode ser bastante fácil de decifrar, mas acho que veremos como se sai.
fonte
Brainfuck aleatório , 273 bytes
Foda cerebral aleatória é a mesma que uma foda cerebral normal, mas apresenta o
?
caractere, que define a célula atual para um valor aleatório. Nota divertida; Eu tinha uma versão disso que funcionava apenas para entradas com menos de 256 caracteres, por razões óbvias, mas o código em si era mais longo que isso. Quando mudei para um tamanho maior, ele ficou um byte menor que o original. ¯ \ _ (ツ) _ / ¯.fonte
Pushy , 25 bytes, Rachado
Recebe a entrada como
"quoted string"
na linha de comando.fonte
1L
ser o contrário? Caso contrário, você está adicionando 1 ao comprimentoAPL (Dyalog Unicode) , 62 bytes
SHA-384 da minha solução pretendida:
3209dba6ce8abd880eb0595cc0a334be7e686ca0aa441309b7c5c8d3118d877de2a48cbc6af9ef0299477e3170d1b94a
Provavelmente isso é fácil, principalmente porque a maioria das pessoas no chat da APL me ajudou a criar essa resposta.
fonte