Questa è una sfida di poliziotti e ladri. Questo è il filo del ladro. Il thread del poliziotto è qui .
I poliziotti sceglieranno qualsiasi sequenza dall'OEIS e scriveranno un programma p che stampa il primo intero da quella sequenza. Essi potranno anche trovare qualche stringa s . Se si inserisce s da qualche parte in p , questo programma deve stampare il secondo numero intero dalla sequenza. Se si inserisce s + s nella stessa posizione in p , questo programma deve stampare il terzo intero dalla sequenza. s + s + s nella stessa posizione stamperà il quarto, e così via e così via. Ecco un esempio:
Python 3, sequenza A000027
print(1)
La stringa nascosta è di due byte .
La stringa è +1
, poiché il programma print(1+1)
stamperà il secondo numero intero in A000027, il programma print(1+1+1)
stamperà il terzo numero intero, ecc.
I poliziotti devono rivelare la sequenza, il programma originale p e la lunghezza della stringa nascosta s . I ladri decifrano un invio trovando qualsiasi stringa fino a quella lunghezza e la posizione in cui inserirla per creare la sequenza. La stringa non deve necessariamente corrispondere alla soluzione prevista per essere un crack valido, né la posizione in cui è inserita.
Se cracchi una delle risposte della polizia, pubblica la tua soluzione (con la stringa nascosta e la posizione rivelate) e un link alla risposta. Quindi commenta la risposta della polizia con un link al tuo crack qui.
Regole
La soluzione deve funzionare per qualsiasi numero nella sequenza, o almeno fino a un limite ragionevole in cui non riesce a causa di restrizioni di memoria, overflow di interi / stack, ecc.
Il ladro vincente è l'utente che fa il maggior numero di invii, con il tiebreaker che ha raggiunto per primo quel numero di crepe.
Il poliziotto vincente è il poliziotto con la stringa più corta s che non è spezzata. Tiebreaker è il p più breve . Se non ci sono invii non crackati, il poliziotto che aveva una soluzione non crackata per le vittorie più lunghe.
Per essere dichiarata sicura, la soluzione deve rimanere senza crack per 1 settimana e quindi mostrare la stringa nascosta (e la posizione per inserirla).
s non può essere nidificato, deve essere concatenato end-to-end. Ad esempio, se s è stato
10
, ogni iterazione andrebbe10, 1010, 101010, 10101010...
piuttosto che10, 1100, 111000, 11110000...
Tutte le soluzioni crittografiche (ad esempio il controllo dell'hash della sottostringa) sono vietate.
Se s contiene caratteri non ASCII, è necessario specificare anche la codifica utilizzata.
%
i soci di sinistra.