Este é um desafio de policiais e ladrões . A discussão dos ladrões está aqui .
Uma questão interessante para se pensar é a seguinte:
Se eu tiver uma sequência de números, quantos deles eu tenho que fornecer antes que fique claro de que sequência estou falando?
Por exemplo, se eu quiser falar sobre os números inteiros positivos em ordem a partir de , eu poderia dizer , mas isso é realmente suficiente?
Eu tenho uma maneira de responder a essa pergunta, e ser um jogador de código envolve código de golfe. Você forneceu termos suficientes de uma sequência se o código mais curto que produz esses termos produzir todos os termos da sequência. Se pensarmos sobre isso em termos de código-golfe, isso significa que você forneceu casos de teste suficientes para que o código mais curto que passe nos casos de teste realize a tarefa desejada.
Desafio
Esse desafio é um desafio de policiais e ladrões . Nos quais os policiais apresentarão casos de teste e os ladrões terão que encontrar uma maneira mais curta de falsificar os casos de teste, além da sequência pretendida. A polícia apresentará o seguinte:
Um pedaço de código que pega um número inteiro não negativo como entrada e produz um número inteiro como saída. Este código definirá sua sequência. Seu código não precisa suportar 0 como entrada, optando por aceitar 1 como a menor entrada. Deve ficar claro se esse é o caso em sua resposta.
Quaisquer requisitos relevantes de plataforma ou idioma que possam afetar a saída, por exemplo, o tamanho de longint.
Um número , juntamente com os primeiros termos da sequência, calculados pelo código. Eles atuarão como "casos de teste".
Você é incentivado a explicar o que sua sequência faz e vincular o OEIS, se existir, no entanto, é o seu código que define a sequência e não a descrição.
Os ladrões encontrarão um programa no mesmo idioma que seja mais curto que o apresentado e passará em todos os casos de teste (produz a mesma saída para as primeiras entradas do código do policial). O código do ladrão também deve diferir na saída do programa do policial para um número maior que .n
Os policiais devem ser capazes de decifrar suas próprias respostas antes de enviá-las.
Depois de uma semana, um policial pode revelar sua rachadura e marcar sua resposta como Segura. As respostas marcadas como tal não podem mais ser quebradas.
Pontuação
As respostas da polícia serão pontuadas pelo número de bytes, com menos bytes sendo melhores. Respostas rachadas têm uma pontuação infinita.
fonte
Respostas:
cQuents , 4 bytes ( rachado )
Experimente online!
Aqui estão oito (
n=8
) casos:Explicação do código:
Portanto, a sequência é
1,2,3,4,5 ...
: ela é unida""
para que se torne12345 ...
e::
significa que ela é impressa na entrada.fonte
Python 3 ,
6657 bytes ( rachado )rachado pelo xnor
também rachado pelo Assistente de gato antes de uma edição
Experimente online!
Olá! Aqui está uma sequência para decifrar para . Dá esses primeiros 40 elementos com indexação 0, não é uma sequência OEISn = 40
fonte
Python 2 , 44 bytes ( quebrado )
Experimente online!
Os números primos. Que sequência poderia ser mais pura? Ou mais exagerado ? Seu objetivo é produzir os primeiros 50 primos para
n=1
an=50
.O código é um gerador de teorema de Wilson copiado exatamente desta dica .
Os diferentes valores para a sequência alternativa não se devem a limitações da máquina, como estouros e precisão. Não há bibliotecas de terceiros.
Rachado por Arnauld, @PoonLevi e Sr. Xcoder.
fonte
Wolfram Language (Mathematica) ,
3934 bytes (Seguro)Experimente online!
Parece simples, a solução deve ser difícil.
1-indexados e . Esta sequência não está disponível no OEIS.n = 99
Esta lista acima é igual a:
Aqui está um modelo para verificar sua solução: Experimente online!
Rachadura pretendida
fonte
Haskell , 29 bytes (Rachado: 1 , 2 )
Experimente online!
Este é A093005 : .a ( n ) = n ⌈ n2⌉
Casos de teste para , ou seja :0 ≤ n ≤ 20
map a [0..20]
Solução pretendida (20 bytes)
Experimente online! Difere em , com um ( 23 ) = 276 e b ( 23 ) = 253 .n = 23 a ( 23 ) = 276 b ( 23 ) = 253
Esta função é equivalente a . Graças ao teto, as duas funções se sobrepõem a argumentos inteiros no intervalo de 0 a 22 :b ( n ) = n l e n ( 3 n) = n ⌈ l o g10( 1 + 3n) ⌉ 0 0 22
fonte
fonte
JavaScript (ES6), 12 bytes ( rachado )
Este é bastante fácil.
Experimente online!
Este é o A139275 :
E de acordo com as regras do desafio, ele deve divergir além.
fonte
n=>8*n*n+n
diferen=94906273
, isso é um crack válido?n=9
, no entanto.|
vez de+
)Malbolge, 10 bytes
Observe que o código termina com um byte 0x14 (controle de dispositivo 4).
Experimente online!
A sequência indexada a 0 para quebrar é
[9, 19, 29]
.fonte
> <> , 276 bytes ( Rachado )
Experimente online! Chame este com
-v n
para obter o n-ésimo elemento (1-indexado)Experimente online! Ligue
-v n
para obter uma lista de n-1 elementos começando em 1Intérprete de peixe on-line
Um longo e complexo, este é o OEIS A004000 .
fonte
n
(conforme exigido pela pergunta)?Geléia , 6 bytes , Seguro!
Isso define uma sequência indexada a zero em que:
1,1,1,2,2,3,4,5,6,7,8,9,10,11,12,13
Experimente online! ( aqui está uma versão de valor único)
No momento, isso não está no OEIS (embora o A34138 funcione como um crack, se for curto o suficiente)
Rachadura pretendida
fonte
JavaScript, 26 bytes ( rachado )
OEIS A007660
A saída é os 6 primeiros elementos com indexação 0 (1,1,2,3,7,22)
(um pouco diferente do que o OEIS listou como)
Basta criar uma resposta simples de resolver para começar
Experimente online!
fonte
JavaScript, 16 bytes ( rachado )
As entradas necessárias para corresponder são 0,1,2,3,4.
Experimente online!
fonte
APL (Dyalog Unicode) ,
1715 bytesExperimente online!
Os 13 primeiros termos (com base em 1) são:
Dica: A solução pretendida usa uma das funções internas menos usadas.
fonte
Husk , 5 bytes ( quebrado por Jonathan Allan )
Experimente online!
Explicação
Solução
fonte
JavaScript, 25 bytes ( rachados 21 bytes)
Sequência de 7,11,12,13,13 seguida de 14s infinitos.
Solução pretendida 22 bytes:
Experimente online!
fonte
JavaScript, 22 bytes ( rachado )
É 0 indexado e a precisão é necessária até uma entrada de 15. Não pode ser encontrada no OEIS
Minha solução 20 bytes
Experimente online!
fonte
> <> , 42 bytes, quebrado
Experimente online!
Sequência de crack (indexada 0):
101786, 5844, 19902
(não no OEIS).Solução pretendida , para referência.
fonte
4
Perl 6 , 53 bytes
Experimente online!
Bloco de código anônimo que retorna a sequência Kolakoski indexada em 0 ( OEIS A000002 ). São necessárias soluções para combinar com os primeiros 130 elementos, de modo que, para alguns
n > 129
, difere da sequência de Kolakoski.fonte
Pascal (FPC) , 86 bytes ( quebrado )
Experimente online!
Minha solução original foi
mas r_64 tornou ainda melhor !
fonte