Questa è una sfida per poliziotti e ladri . Il thread dei ladri è qui .
Una domanda interessante a cui pensare è la seguente:
Se ho una sequenza di numeri, quanti ne devo fornire prima che sia chiaro di quale sequenza sto parlando?
Ad esempio, se voglio parlare degli interi positivi in ordine a partire da , potrei dire , ma è davvero abbastanza?1 , 2 , 3 , ...
Ho un modo di rispondere a questa domanda, ed essendo un golfista di codice implica il golf di codice. Hai fornito abbastanza termini di una sequenza se il codice più breve che produce quei termini produce tutti i termini della sequenza. Se pensiamo a questo in termini di code-golf, ciò significherebbe che hai fornito un numero sufficiente di casi di test in modo tale che il codice più breve che supera i casi di test faccia il compito desiderato.
Sfida
Questa sfida è una sfida per poliziotti e ladri . In cui i poliziotti presenteranno casi di test e i ladri dovranno trovare un modo più breve per falsificare i casi di test diversi dalla sequenza prevista. Gli sbirri presenteranno le seguenti cose:
Un pezzo di codice che accetta un intero non negativo come input e produce un intero come output. Questo codice definirà la sequenza. Il tuo codice non deve supportare 0 come input, scegliendo invece di prendere 1 come input più piccolo. Dovrebbe essere chiaro se questo è il caso nella tua risposta.
Qualsiasi piattaforma pertinente o requisiti linguistici che potrebbero influire sull'output, ad esempio la dimensione del longint.
Un numero , insieme ai primi termini della sequenza calcolati dal codice. Questi fungeranno da "casi di test".n
Sei incoraggiato a spiegare cosa fa la tua sequenza e collegare OEIS se esiste, tuttavia è il tuo codice che definisce la sequenza e non la descrizione.
I ladri troveranno un programma nella stessa lingua che è più breve di quello presentato e supera tutti i casi di test (produce lo stesso output per i primi input del codice del poliziotto). Il codice del ladro deve anche differire nell'output dal programma del poliziotto per un numero maggiore di .n
Gli sbirri devono essere in grado di decifrare le proprie risposte prima di inviarle.
Dopo una settimana un poliziotto può rivelare il proprio crack e contrassegnare la propria risposta come sicura. Le risposte contrassegnate come tali non possono più essere violate.
punteggio
Le risposte degli sbirri saranno segnate dal numero di byte con meno byte migliori. Le risposte incrinate segnano un punteggio infinito.