Este é um desafio de policiais e ladrões . Para o tópico de ladrões, clique aqui .
Esse desafio envolve duas sequências OEIS escolhidas pelos policiais - S 1 , S 2 - e quão bem essas sequências podem ser jogadas e ofuscadas.
O desafio da polícia
Seu desafio como policial é escolher um idioma disponível gratuitamente e duas seqüências OEIS. Em seguida, escreva o código A no idioma que recebe a entrada n e produz S 1 (n). Quando esse código é modificado por uma distância Levenshtein de caracteres X (com X não mais que 0.5 * (length A)
) e transformado em código B no mesmo idioma, ele deve produzir S 2 (n). Você deve realmente escrever esse código B , mas não o revele até que seu desafio seja seguro (veja abaixo).
Os envios dos policiais devem incluir o nome do idioma, o código completo A , a contagem de bytes de A , o valor X de quantas alterações serão alcançadas no código B secreto e os números de sequência S 1 e S 2 escolhidos . Você pode escolher se cada sequência é indexada com 0 ou 1, mas especifique isso em seu envio.
Para quebrar uma submissão específica, os ladrões devem criar um programa C no mesmo idioma (e versão) que produz S 2 (n) e com o caractere Y muda de A (com Y <= X
). Os ladrões não precisam necessariamente encontrar exatamente o mesmo código B que o policial (secretamente) produziu.
Vencendo e Pontuação
Se sua resposta policial não tiver sido decifrada em 7 dias (168 horas), você poderá revelar sua própria solução B , quando sua resposta será considerada segura. Contanto que você não revele sua solução, ela ainda poderá ser quebrada por ladrões, mesmo que os sete dias já tenham passado. Se sua resposta for quebrada, indique-a no cabeçalho da sua resposta, juntamente com um link para a resposta do ladrão correspondente.
Cops ganhar por ter a apresentação uncracked com o menor A . Se amarrado, o menor X será usado como desempatador. Se ainda estiver empatado, o envio anterior vencerá.
Regras adicionais
- Você não deve usar nenhum componente interno para hash, criptografia ou geração de números aleatórios (mesmo que você propague o gerador de números aleatórios para um valor fixo).
- Programas ou funções são permitidos, mas o código não deve ser um trecho e você não deve assumir um ambiente REPL.
- Você pode receber e dar saída em qualquer formato conveniente . Os métodos de entrada / saída devem ser os mesmos para as duas seqüências.
- A calculadora definitiva para a distância de Levenshtein para este desafio é esta no Planet Calc.
- Além de ser um desafio CnR, este é um código de golfe, portanto todas as regras usuais de golfe se aplicam.
(0.5*len(A))