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.

Urna de polvo mágico
fonte

Respostas:

4

Java 8, 97 bytes, 34 bytes exclusivos, Kevin Cruijssen

interface Fillerrrrrrrrrrr{static void main(String...a){System.out.println(1.4241570377303032);}}

Experimente online!

Super inovador crack, passou horas nele

Roberto Graham
fonte
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
Luis Mendo
fonte
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.

Giuseppe
fonte
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
H.PWiz
fonte
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

Arnauld
fonte
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.

user202729
fonte
3

Brain-Flak , 62 bytes totais, 6 exclusivos, Assistente de Trigo

(((((((()()()){}){}){}){}){}){(({})[()])}{})({{()({}[()])}{}})

Experimente online!

Riley
fonte
Bom trabalho! Não era isso que eu pretendia, mas funciona!
Post Rock Garf Hunter
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.

Jonathan Allan
fonte
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

Geléia , 3 bytes , 3 únicos Erik, o Outgolfer

ȷc⁵

Experimente online!

Quão?

ȷc⁵ - Main link: no arguments, no input
ȷ   - literal one-thousand
  ⁵ - literal ten
 c  - choose (A.K.A. binomial coefficient) = 263409560461970212832400 as required.
Jonathan Allan
fonte
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.

ovs
fonte
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.

wythagoras
fonte
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.

Nitrodon
fonte
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.

Bubbler
fonte
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
Jonathan Allan
fonte