In un incidente molto insolito che coinvolge un piccolo campione di radio, una balena fulminata e tre orsetti gommosi, alcuni dei codici sorgente di The Management ™ sono stati mutati. Il padrone di The Management ™ non lo sa, in realtà erano i poliziotti a essere responsabili, nel tentativo di contrastare i piani "malvagi" di The Management ™. Quindi i Robbers® sono stati assunti nel tentativo di recuperare il codice originale, perché a volte a chi non piace essere cattivo?
nota: questa sfida è stata fortemente ispirata da Decodificare il codice sorgente .
Descrizione
Questa è una sfida per poliziotti e ladri .
- I poliziotti scriveranno un programma (il codice mutato) che esegue l'attività n. 1 (e scriverà anche un programma che esegue l'attività n. 2, ma è tenuto segreto).
- I ladri tenteranno di invertire la "mutazione" e di modificare questo codice originale in codice che esegue l'attività n. 2.
In questa sfida, il compito n. 1 sarà quello di produrre il n
numero primo , e il compito n. 2 sarà quello di produrre il n
numero di Fibonacci (che è in qualche modo malvagio, secondo comunque i poliziotti). La sequenza di Fibonacci è definita come ( n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...), mentre i numeri primi sono definiti come ( n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...).
L'obiettivo dei poliziotti è ridurre al minimo la differenza tra i programmi che completano l'attività n. 1 e l'attività n. 2, impedendo ai ladri di ricreare il codice che completa l'attività n. 2.
Regole della polizia
I poliziotti scriveranno due programmi (uno che completa l'attività n. 1 e uno che completa l'attività n. 2) e renderanno pubbliche le seguenti informazioni:
- Il primo programma (che genera il
n
primo numero primo) - Il Levenshtein modifica la distanza tra il primo programma e il secondo programma
- Il linguaggio di programmazione in cui sono scritti entrambi i programmi (deve essere la stessa lingua per entrambi i programmi)
Le seguenti restrizioni si applicano ad entrambi i programmi:
- Devono contenere almeno 128 caratteri.
- Devono utilizzare solo ASCII stampabile (oltre a nuove righe, che sono anche consentite).
- Devono richiedere meno di 10 secondi per essere eseguiti
n=45
e non sono tenuti a produrre l'output corretto per nessunon>45
. - Non devono utilizzare alcuna funzione di hashing o crittografia.
Regole rapinatore
Il ladro tenterà di cambiare il programma del poliziotto (che completa l'attività n. 1) in un programma che completa l'attività n. 2 (non necessariamente il programma originale scritto dal poliziotto) nella distanza di modifica specificata dal poliziotto.
Una sottomissione già decifrata non può essere nuovamente decifrata (solo il primo ladro che rompe una sottomissione ottiene credito).
Dopo aver infranto una richiesta, procedi come segue:
- Pubblica una risposta alla domanda di accompagnamento di questa sfida (link) , fornendo la lingua, la tua soluzione e un link alla risposta originale.
- Lascia un commento con il testo "Cracked" che rimanda alla tua risposta postata.
- Modifica la risposta del poliziotto se hai i privilegi di modifica (in caso contrario, aspetta fino a quando qualcun altro con i privilegi richiesti lo fa per te o suggerisci una modifica).
punteggio
Se il programma di un poliziotto rimane senza crack per 1 settimana, il poliziotto può pubblicare il codice originale che completa l'attività n. 2 (nella distanza di modifica specificata) e l'invio da quel momento in poi è considerato "sicuro". Vincerà l'invio sicuro con la minima distanza di modifica. In caso di pareggio, vince il programma più breve (l'originale che completa l'attività n. 1). Se due invii sono ancora in parità, vince quello pubblicato in precedenza.
Se un ladro rompe con successo l'invio di un poliziotto, il punteggio del ladro aumenta della distanza di modifica di tale invio. Ad esempio, un ladro che rompe un invio con una distanza di modifica di 3 e uno con una distanza di 5 guadagna 8 punti. Vince il ladro con il punteggio più alto. In caso di pareggio, vince il ladro che ha guadagnato il punteggio.