Este é um desafio de policiais e ladrões. Este é o fio do ladrão. A discussão do policial está aqui .
Os policiais escolhem qualquer sequência do OEIS e escrevem um programa p que imprime o primeiro número inteiro dessa sequência. Eles também encontrarão algumas cordas s . Se você inserir s em algum lugar em p , esse programa deverá imprimir o segundo número inteiro da sequência. Se você inserir s + s no mesmo local em p , este programa deverá imprimir o terceiro número inteiro a partir da sequência. s + s + s no mesmo local imprimirá o quarto, e assim por diante. Aqui está um exemplo:
Python 3, sequência A000027
print(1)
A cadeia oculta é de dois bytes .
A cadeia é +1
, porque o programa print(1+1)
imprimirá o segundo número inteiro em A000027, o programa print(1+1+1)
imprimirá o terceiro número inteiro etc.
Os policiais devem revelar a sequência, o programa original p e o comprimento da sequência oculta s . Os ladrões quebram uma submissão encontrando qualquer sequência com esse comprimento e o local para inseri-la e criar a sequência. A sequência não precisa corresponder à solução pretendida para ser um crack válido, nem o local em que está inserida.
Se você quebrar uma das respostas da polícia, poste sua solução (com a string e o local ocultos revelados) e um link para a resposta. Em seguida, comente a resposta da polícia com um link para o seu crack aqui.
Regras
Sua solução deve funcionar para qualquer número na sequência, ou pelo menos até um limite razoável em que falha devido a restrições de memória, excesso de número inteiro / pilha, etc.
O ladrão vencedor é o usuário que racha mais entradas, sendo o desempate quem atinge esse número de rachaduras primeiro.
O policial vencedor é o policial com a menor corda s que não está quebrada. O desempatador é o menor p . Se não houver envios sem rachaduras, o policial que teve uma solução sem rachaduras por mais vitórias.
Para ser declarada segura, sua solução deve permanecer sem quebra por 1 semana e, em seguida, ter a sequência oculta (e o local para inseri-la) revelada.
s não pode ser aninhado, deve concatenar de ponta a ponta. Por exemplo, se s fosse
10
, cada iteração seria executada em10, 1010, 101010, 10101010...
vez de10, 1100, 111000, 11110000...
Todas as soluções criptográficas (por exemplo, verificando o hash da substring) são proibidas.
Se s contiver caracteres não ASCII, você também deverá especificar a codificação que está sendo usada.
%
os associados de esquerda.