Engenharia reversa da singularidade (fio do ladrão)


11

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 de nbytes com cbytes únicos que corresponde à saída do policial o.


Este é o fio dos ladrões . Poste soluções que você quebrou aqui.

O encadeamento COPS está localizado aqui .


Os ladrões devem postar soluções como esta:

#[Language], `n` Bytes, `c` Unique Bytes (Cracked)[Original Link to Cop Thread]

    [Solution]

(Explanation)

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.

Ganhando

  • O post não rachado com a c*npontuação mais baixa ganha o thread do policial.
  • Quem quebrar mais ganha o fio dos ladrões, com as primeiras rachaduras quebrando o empate.
  • 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 .

Nota: Além disso, lembre-se de votar de novo nas rachaduras, elas geralmente são a parte impressionante.

Respostas:



4

MATL , 4 bytes, 4 bytes únicos, Stewie Griffin

1X2p

Experimente online!

Explicação

1X2   % Push predefined literal: string 'double'
p     % Product of array. For strings it uses code points. Implicit display

Você conhece todos os literais predefinidos ... Eu não ... Não era exatamente o mesmo que eu tinha, mas é claro que era o produto de 'double'. :)
Stewie Griffin

@ StewieGriffin Ah, entendo, então você usou algo parecido 1X%p. Na verdade, eu sei apenas alguns literais predefinidos. Eu brutalmente forçado com a 9:"@X1pDmudança Xe1
Luis Mendo

4

MATL , 6 bytes, 3 únicos, Luis Mendo

FFFTZF

Experimente online!

Eu reconheci imediatamente a saída

1+0i 0+1i -1+0i 0-1i

como os 4-th raízes da unidade, e eu sabia que o ffton [0 0 0 1]resultaria nisso.

Demorei um pouco para descobrir o que FFFTiria empurrar [0 0 0 1]e ainda não tenho certeza de como funciona. EDIT: Luis Mendo explicou isso Fe Té "pegajoso", então uma sequência de Fe Tirá automaticamente horzcatjuntá-los, portanto, FFFTempurra [0 0 0 1].

Isso é expresso de forma sucinta na documentação (uma vez que procurei):

Para vetores de linhas lógicas, os colchetes podem ser omitidos; isto é, a notação [T F T]ou [TFT]pode ser simplificada para TFT. Um separador pode ser necessária se uma nova matriz lógica seguinte forma: TFT TT. Mas não é necessário em outros casos: TFT3.5.


1
Fe Tsão "pegajosos". Assim FFTdefine um vetor linha[false, false, true]
Luis Mendo

@LuisMendo obrigado, isso está claro agora.
21717 Giuseppe

4

Haskell , 29 bytes, 15 únicos, Laikoni

f<$>[1..74]
f 47='4'
f f1='3'

Experimente online!

Eu já tinha as duas quase soluções:

do;d<-[2..74];'3':['4'|d==47]    -- 29,16
do;d<-[-41..31];'3':['4'|d==4]   -- 30,15

ahh, o comentário de Laikoni me levou a pensar que a resposta precisava ser uma única expressão ... cheguei mais perto ["34"!!(0^x^2)|x<-[-46..27]](28, 18).
Lynn

1
Além disso, eu não fazia ideia de que você poderia colocar um ponto e vírgula logo depois do!
Lynn

1
Sim, eu tinha um espaço lá por um longo tempo antes de supor que poderia ser válido.
H.PWiz

@Lynn Laikoni afirmou que a solução é uma expressão simples em conversa
H.PWiz


3

JavaScript (ES6), Brian H.

Obrigado @Milk por corrigir o último '5' à direita

f=f=>1/44.4

console.log(f())

Personagens exclusivas: ., /, 1, 4, =, >,f


1
Este gera os 5 extras no final:_=_=>1/44.4
milk

@ leite Parece melhor mesmo. Deixe-me saber se você deseja publicá-lo e eu excluirei este.
Arnauld

Isso é legal, você pode simplesmente atualizar sua postagem, se quiser. Eu entendi isso construindo seu crack.
milk

disse que era fácil: p
Brian H.

3

Wolfram Language (Mathematica) , 8 bytes, 3 únicos, Jenny_mathy

7!!!/77!

Experimente online!

Repartição: Factorial[7!!] / Factorial[77]onde !!é fatorial duplo.

Primeiro, noto a longa sequência de 0no final, então acho que pode ser algum tipo de fatorial. FactorIntegerdá o maior fator 103, então eu tento n/103!, e recebo o próximo maior fator primário (negativo) 73. Ajustando os fatores para dá algum tempo 105!/77!, então eu acho que "já existem 3 símbolos 7, !e /, por isso, a maneira de criar 105 deve ser a partir desses símbolos!". Então tentei 7!!(que é uma das poucas coisas a tentar) e obtive 105 como o resultado correto.




2

Geléia , 7 bytes, 6 únicos, Erik , o Outgolfer

- Por alguma razão, comecei com um zero à direita no resultado. Sem ele eu teria dado
8,16!PP
como solução.


8,⁴!PP0

Experimente online!

Quão?

8,⁴!PP0 - Main link of a program taking no arguments and no input
  ⁴     - literal sixteen
8       - literal eight
 ,      - pair = [8,16]
   !    - factorial (vectorises) = [8!, 16!] = [40320, 20922789888000]
    P   - product = 40320 × 20922789888000 = 843606888284160000
     P  - product (no effect) = 843606888284160000
      0 - literal zero (just gets printed)
        - leaving STDOUT displaying 8436068882841600000, as required

... 8,⁴!’Ppara 6 bytes, 6 únicos teriam sido muito mais difíceis de decifrar, pois o resultado de 843585965494231681 ( 40319 × 2092278988799 ) não parece tão fatorial.


Alternativa: 8µḤ!×! (com espaço à direita)
user202729 13/11

Ou 8,⁴!Pcom 2 ou espaços à direita ( qou algum outro byte unimplemented)
Jonathan Allan


2

PowerShell , 7 bytes, 5 bytes exclusivos, AdmBorkBork

1PB#---

Experimente online!

A saída 1125899906842624é igual a 2^50e 2^50 Bytesé igual a 1 Pebibyte. O código real é de apenas 3 bytes, portanto, adicionei um comentário no final.


Agradável. Eu tinha pensado que aderir a um comentário jogaria as pessoas para dar uma volta, mas parece que eu estava errado. :)
AdmBorkBork

2

Excel, 22 bytes, 16 bytes únicos, EngineerToast

Uma solução possível é:

=BAHTTEXT(2^(480-300))

Os caracteres únicos são =BAHTEX()^02348-.

Eu reconheci que o BAHTTEXT foi usado ao ver a saída. Ao traduzir a saída de volta para tailandês para inglês, consegui encontrar o valor do número. Imaginei que fosse uma potência de 2, o que realmente é (ou seja, 2 180 ). A expressão 480-300 = 180 foi então construída para garantir que a solução contenha 22 bytes com 16 exclusivos.


2

Alice , 9 bytes, 8 bytes únicos, Leo

/Yr@
\no/

Experimente online!

Desdobrado, é isso nrYo@.

n  negate the implicit empty string: creates the string "Jabberwocky".
r  range expansion: produces a string that starts with J, 
   goes up in ASCII order to w, down to c, and then up to y.
Y  separate this string into even and odd positions
o  output the even positions
@  terminate

Aliás, a orientação dos espelhos na primeira coluna é completamente irrelevante; portanto, isso pode ser facilmente reduzido para 7 bytes únicos.


Você está certo sobre os espelhos! Eu me tornei muito enferrujado com Alice :)
Leo


1

J , 8 bytes, 6 bytes únicos, Bolce Bussiere

;p.p:i.9

Experimente online!

Resultado:

23 _0.677447j0.296961 _0.677447j_0.296961 0.125003j0.726137 0.125003j_0.726137 _0.379097j0.630438 _0.379097j_0.630438 0.518498j0.521654 0.518498j_0.521654

A dica óbvia é que, na saída fornecida, números complexos sempre aparecem como pares conjugados. Isso me fez suspeitar do p.verbo, que converte entre formas polinomiais simples e multiplicadoras e raízes.

Então eu tentei:

p. 23;(...those complex numbers)
   2 3 5 7.00001 11 13 17 19 23

Sim, meu pensamento estava correto. A lista de números primos é fácil. Monadic ;achata a lista de matrizes em caixa para uma linear simples. A expressão resultante tem dois pontos e dois pontos, portanto, a contagem de bytes é perfeita.



0

Gelatina , 8 bytes , 6 únicos, Mr. Xcoder

7x7²¤ḌḤ²

Experimente online!

Quão?

7x7²¤ḌḤ² - Main link: no arguments & no input
7        - literal 7
    ¤    - nilad followed by link(s) as a nilad:
  7      -   literal 7
   ²     -   square -> 49
 x       - repeat elements -> [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
     Ḍ   - convert from a decimal list -> 7777777777777777777777777777777777777777777777777
      Ḥ  - double -> 15555555555555555555555555555555555555555555555554
       ² - square -> 241975308641975308641975308641975308641975308641926913580246913580246913580246913580246913580246916
         - implicit print
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.