Reversed Engineered from Uniqueness (Discussione di ladro)


11

Dato l'output del programma del poliziotto ( o), il byte-count ( n) e il numero di byte univoci ( c) utilizzati, viene fornito un pezzo di codice corrispondente che è nlungo byte con cbyte univoci che corrispondono all'output del poliziotto o.


Questo è il thread dei ladri . Pubblica soluzioni che hai risolto qui.

Il thread COPS si trova qui .


I ladri dovrebbero pubblicare soluzioni come questa:

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

    [Solution]

(Explanation)

Regole

  • Non puoi accettare alcun input per il tuo programma.
  • Il programma deve utilizzare almeno 1 byte, ma non può superare 255 byte.
  • Anche l'output stesso è limitato a 255 byte.
  • Il programma deve avere risultati di output coerenti se eseguito più volte.
  • Se il tuo invio non viene infranto entro 7 giorni, puoi contrassegnarlo come "sicuro".
    • Quando lo contrassegni come sicuro, pubblica la soluzione desiderata e assegnala come c*n.

vincente

  • Il post senza crack con il c*npunteggio più basso vince il thread del poliziotto.
  • Chiunque spezza di più vince il filo dei ladri, con il primo crack che rompe il pareggio.
  • Questo sarà deciso dopo 10 risposte sicure o poche settimane.

Avvertenze

  • Se ti senti arrogante, potresti dire all'utente l'algoritmo usando un tag spoiler .

Nota: Ricorda inoltre di valutare le crepe, di solito sono la parte impressionante.

Risposte:



4

MATL , 4 byte, 4 byte unici, Stewie Griffin

1X2p

Provalo online!

Spiegazione

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

Sai tutti i letterali predefiniti ... Io no ... Non era esattamente lo stesso che avevo, ma ovviamente era il prodotto di 'double'. :)
Stewie Griffin,

@StewieGriffin Ah, capisco, quindi hai usato qualcosa del genere 1X%p. In realtà conosco solo alcuni letterali predefiniti. Sono stato costretto a 9:"@X1pDcambiare X1
bruscamente

4

MATL , 6 byte, 3 unici, Luis Mendo

FFFTZF

Provalo online!

Ho immediatamente riconosciuto l'output

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

come la quarta radice dell'unità, e sapevo che l' ffton [0 0 0 1]sarebbe risultato in questo.

Mi ci è voluto un po 'di tempo per capire che FFFTavrebbe spinto [0 0 0 1]e non sono ancora sicuro di come funzioni. EDIT: Luis Mendo lo ha spiegato Fe Tsono "appiccicosi", quindi una sequenza di Fe li Tfarà automaticamente horzcatinsieme, quindi, FFFTspinge [0 0 0 1].

Questo è espresso in modo succinto nella documentazione (una volta cercata):

Per i vettori di riga logici è possibile omettere le parentesi quadre; cioè, la notazione [T F T]o [TFT]può essere semplificata TFT. Un separatore può essere necessaria se un nuovo array logico segue: TFT TT. Ma non è necessario in altri casi: TFT3.5.


1
Fe Tsono "appiccicosi". Così FFTdefinisce un vettore di riga[false, false, true]
Luis Mendo il

@LuisMendo grazie, adesso è chiaro.
Giuseppe,

4

Haskell , 29 byte, 15 unici, Laikoni

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

Provalo online!

In precedenza avevo due soluzioni quasi:

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

ahh, il commento di Laikoni mi ha portato a pensare che la risposta doveva essere una singola espressione ... il più vicino che ho ottenuto è stato ["34"!!(0^x^2)|x<-[-46..27]](28, 18).
Lynn,

1
inoltre, non avevo idea che potessi mettere un punto e virgola subito dopo docosì!
Lynn,

1
Sì, ho avuto uno spazio lì a lungo prima di indovinare che potrebbe essere valido.
H.Piz,

@Lynn Laikoni ha affermato che la soluzione è una singola espressione nella chat
H.PWiz


3

JavaScript (ES6), Brian H.

Grazie @Milk per aver corretto l'ultimo '5' finale

f=f=>1/44.4

console.log(f())

Personaggi unici: ., /, 1, 4, =, >,f


1
Questo alla fine genera il extra 5:_=_=>1/44.4
latte

@milk Questo sembra davvero migliore. Fammi sapere se desideri pubblicarlo e lo eliminerò.
Arnauld,

È fantastico, puoi semplicemente aggiornare il tuo post se vuoi. Ho preso questo dal costruire il tuo crack.
latte

disse che era facile: p
Brian H.,

3

Wolfram Language (Mathematica) , 8 byte, 3 unici, Jenny_mathy

7!!!/77!

Provalo online!

Ripartizione: Factorial[7!!] / Factorial[77]dov'è il !!doppio fattoriale.

Per prima cosa noto la lunga sequenza di 0alla fine, quindi immagino che possa essere una specie di fattoriale. FactorIntegerdà il fattore più grande 103, quindi provo n/103!, e ottengo il primo fattore più grande (negativo) è 73. Modificando i fattori per un po 'di tempo 105!/77!, allora penso "ci sono già 3 simboli 7, !e /quindi il modo di creare 105 deve essere da quei simboli!". Quindi ho provato 7!!(che è una delle poche cose da provare) e ottengo 105 come risultato corretto.




2

Jelly , 7 byte, 6 unici, Erik the Outgolfer

- Per qualche motivo ho iniziato con uno zero finale nel risultato. Senza di essa avrei dato
8,16!PP
come soluzione.


8,⁴!PP0

Provalo online!

Come?

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,⁴!’Pper 6 byte, 6 unici sarebbero stati molto più difficili da decifrare dal momento che il risultato di 843585965494231681 ( 40319 × 2092278988799 ) non ha un aspetto così fattoriale.


Alternativa: 8µḤ!×! (con spazio finale)
user202729

O 8,⁴!Pcon 2 spazi finali (O qo qualche altro byte non implementato)
Jonathan Allan,


2

PowerShell , 7 byte, 5 byte univoci, AdmBorkBork

1PB#---

Provalo online!

L'output 1125899906842624è uguale a 2^50ed 2^50 Bytesè uguale a 1 Pebibyte. Il codice effettivo è di soli 3 byte, quindi ho aggiunto un commento alla fine.


Bello. Pensavo che attaccare un commento avrebbe gettato la gente in loop, ma sembra che mi sbagliassi. :)
AdmBorkBork,

2

Excel, 22 byte, 16 byte unici, EngineerToast

Una possibile soluzione è:

=BAHTTEXT(2^(480-300))

I personaggi unici sono =BAHTEX()^02348-.

Ho riconosciuto che BAHTTEXT è stato usato quando ho visto l'output. Traducendo l'output dal tailandese all'inglese, sono stato in grado di trovare il valore del numero. Ho indovinato che fosse un potere di 2, che in effetti lo è (vale a dire 2 180 ). L'espressione 480-300 = 180 è stata quindi costruita per assicurarsi che la soluzione contenga 22 byte con 16 univoci.


2

Alice , 9 byte, 8 byte unici, Leo

/Yr@
\no/

Provalo online!

Spiegato, questo è 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

Per inciso, l'orientamento dei mirror nella prima colonna è completamente irrilevante, quindi questo potrebbe essere facilmente ridotto a 7 byte univoci.


Hai ragione sugli specchi! Sono diventato troppo arrugginito con Alice :)
Leo,


1

J , 8 byte, 6 byte unici, Bolce Bussiere

;p.p:i.9

Provalo online!

Produzione:

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

L'ovvio suggerimento è che, nell'output dato, i numeri complessi compaiono sempre come coppie coniugate. Mi ha fatto sospettare il p.verbo, che converte tra semplici forme polinomiali e forme moltiplicatrici e radicali.

Quindi ho provato:

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

Sì, il mio pensiero era corretto. L'elenco dei numeri primi è facile. Monadic ;appiattisce l'elenco di array inscatolati in uno lineare semplice. L'espressione risultante ha due p e due punti, quindi il conteggio dei byte è perfetto.



0

Gelatina , 8 byte , 6 unici, Mr. Xcoder

7x7²¤ḌḤ²

Provalo online!

Come?

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.