Catena da golf (filo della polizia)


13

Questa è una sfida di poliziotti e ladri. Per il thread dei ladri, vai qui .

I poliziotti hanno tre compiti.
1) Scegli una sequenza dall'OEIS .

2) Scegli una lingua (questa è suggerita per essere un golflang, ma non deve essere) che, quando viene dato input n, genera A(n)(dove A(n)è la sequenza scelta) usando tutte le normali regole del .
Chiamare questo linguaggio L A e il codice C A .
Ad esempio, Jelly e Jelly_code .

3) Quindi, scegli una lingua diversa (questa è suggerita come non golflang, ma non deve essere) e scrivi il codice che non accetta input e restituisce il codice C A , sempre seguendo tutte le normali regole del . (Nota:. Questo può essere offuscato il codice e non deve necessariamente essere golfed, ma più di questo codice è il più facile sarà per i ladri per rompere la vostra presentazione)
Chiamare questo linguaggio L B e il codice C B .
Ad esempio, Python e Python_code .

Secondo la Cop a questa sfida è la sequenza (specificato se 0- o 1-indicizzati), il nome delle due lingue L A e L B (e quale Risolve che parte), e il byte-count di C B soltanto. Mantenere segreto il codice effettivo di entrambe le parti e la lunghezza di C A.

Per il Cop, i collegamenti alla documentazione per L A e L B , o un interprete (o un collegamento TIO, dal momento che include entrambi), sono apprezzati ma non richiesti.

La sfida del ladro è quella di selezionare la voce di un poliziotto e scrivere il codice C C nella stessa lingua L B che genera un codice nella stessa lingua L A che risolve l'attività OEIS originale. La lunghezza di C C non può essere più lunga della lunghezza di C B rivelata dal poliziotto (sebbene possa essere più breve). Nota: il codice prodotto da C C non non deve necessariamente corrispondere C A .

Per il nostro esempio, ciò significa che il ladro deve scrivere il codice Python che genera il codice Jelly che risolve la sequenza OEIS originale e che il codice Python non deve essere più lungo della lunghezza rivelata dal poliziotto.

Condizioni vincenti

Le risposte che non sono state risolte in una settimana possono essere rivelate le loro soluzioni, a quel punto sono considerate sicure . Si noti che se non si rivela la soluzione dopo una settimana, può ancora essere risolta. Vince il poliziotto con la risposta di sicurezza più breve .



Manteniamo segreta la sequenza OEIS?
juniorRubyist,

@juniorRubyist No, il poliziotto deve dichiarare quale sequenza ha usato e se è 0 o 1 indicizzato.
AdmBorkBork,

Risposte:


3

OEIS A000041 , rotto da ETHproductions

Proviamo il contrario: golflang genera non golflang.

a (n) = numero di partizioni di n (i numeri di partizione).

  • a (n) (indicizzato 0) viene restituito da una funzione JavaScript (ES6)
  • Il programma che emette la funzione JS è scritto in Jelly
  • La lunghezza del programma Jelly è di 35 byte

Soluzione prevista

Jelly: “¦ṚoIwƭ- ḊFæSḂ¥¶Ẉ|ḊJƓƝʋnrB⁾’b28+40Ọ

che genera

JS:C=(A,B=A)=>A<0?0:A?B?C(A,B-1)+C(A-B,B):0:1


Cracked . È stato abbastanza divertente, anche se mi sembra di aver perso un paio d'ore :-)
ETHproductions

@ETHproductions Nice! La mia soluzione JS utilizzava un intervallo limitato di caratteri in modo che potesse essere compresso come numero intero di base 28 sul lato Jelly.
Arnauld,

@ETHproductions Amico, avrei dovuto dedicare più tempo all'ottimizzazione del codice JS. Ecco una soluzione a 31 byte . ¯ \ _ (ツ) _ / ¯
Arnauld

2

OEIS A048272 , crackato da DJMcMayhem

Numero di divisori dispari di n meno numero di divisori pari di n (1-indicizzato).

  • Il programma che genera a (n) è scritto in 05AB1E .
  • Il programma che emette il programma 05AB1E è scritto in Brain-Flak + il -Aflag.
  • La lunghezza del programma Brain-Flak è di 198 byte (il conteggio dei byte non include il flag).

Nota che probabilmente potrei facilmente golfare il programma Brain-Flak usando i trucchi per la manipolazione dello stack e altri trucchi per la complessità del kolmogorov di cui sono a conoscenza, ma volevo mantenere questo semplice come primo invio. Buona fortuna ladri!

Quello che avevo in mente

05AB1E: ÑÈD<)O(O

Brain-Flak:(((((((((((()()()){}){}){({}[()])}{}())[((((()()()){}){}())){}{}])((((()()()){}){}())){}{})[((((()()()){}){})()){}{}])(((()()()){})){}{}())(()()()()){})(((((()()()()){}){}){}()){}){})((()()())){}{})



@DJMcMayhem :( Ho appena finito
HyperNeutrino il

@DJMcMayhem Nice! Proverò qualcosa di un po 'più difficile dopo.
Mr. Xcoder,

2

OEIS 000035 , rotto da betseg

Il problema è risolto in Proton .
Il codice Proton viene prodotto da Python .
La lunghezza del programma Python è di 13 byte .

Davvero facile per i principianti (se conosci Proton: D). Zero indicizzati.

Soluzione prevista

Python: print("(2%)")
Proton: (2%)
Anche se ho deciso di n=>n%2essere abbastanza breve perché i collegamenti alle funzioni diadiche / monadiche non sono documentati.


7
Veramente facile se conosci una lingua che sembra avere documentazione zero. Sì grandioso.
Peter Taylor,

3
Perché è il collegamento ad A34 ...
user202729


@ user202729 riparato grazie
HyperNeutrino il

@PeterTaylor precisamente zero ce n'è abbastanza per risolverlo ...
HyperNeutrino,


1

OEIS A055642 , rotto da Lynn

Numero di cifre in espansione decimale di n

Questo è probabilmente troppo facile, ma mi ci è voluto un po ', quindi spero che qualcuno là fuori rimanga deluso quanto lo ero quando finalmente l'ho capito: D

  • Il programma che scrive una (n) è scritto in 05AB1E
  • Viene scritto il programma che stampa il programma 05AB1E TeX
  • Il programma TeX è di 6 byte lungo

Quello che avevo in mente:

Sgcome codice 05AB1E
Sg\byecome codice TeX



1
@ Lynn sì. Quanto sei stato deluso?
Simon Klaver,

1

OEIS A000668 , rotto da Lynn

Mersenne primi (di forma 2 p -1 dove p è un numero primo)

  • a (n) viene emesso da una gelatina programma completo .
  • n è 1 indicizzato.
  • Il programma Jelly è stampato da un programma Triangularity , la cui lunghezza è di 38 byte .

Strategia diversa: risolvi la sequenza in un golflang e genera il programma in un esolang.

Soluzione prevista


Sei sicuro che la lunghezza sia corretta? Secondo i documenti, un programma di triangolarità deve avere una lunghezza 2*n^2 - 1che non può essere 38.
Lynn,

1
@Lynn Questo si riferisce al conteggio dei caratteri , non al conteggio dei byte .
Mr. Xcoder,

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.