Definição
a(1) = 1
a(2) = 2
a(n)
é o menor númerok>a(n-1)
que evita qualquer progressão aritmética em 3 termos ema(1), a(2), ..., a(n-1), k
.- Em outras palavras,
a(n)
é o menor númerok>a(n-1)
que não existex
,y
onde0<x<y<n
ea(y)-a(x) = k-a(y)
.
Exemplo elaborado
Para n=5
:
Nós temos a(1), a(2), a(3), a(4) = 1, 2, 4, 5
Se a(5)=6
, 2, 4, 6
forme uma progressão aritmética.
Se a(5)=7
, 1, 4, 7
forme uma progressão aritmética.
Se a(5)=8
, 2, 5, 8
forme uma progressão aritmética.
Se a(5)=9
, 1, 5, 9
forme uma progressão aritmética.
Se a(5)=10
, nenhuma progressão aritmética pode ser encontrada.
Portanto a(5)=10
.
Tarefa
Dado n
, saída a(n)
.
Especificações
n
será um número inteiro positivo.- Você pode usar 0 indexado em vez de 1, nesse caso,
n
pode ser0
. Por favor, indique-o na sua resposta se você estiver usando o índice 0.
Pontuação
Como estamos tentando evitar a progressão aritmética em 3 períodos, e 3 é um número pequeno, seu código deve ser o menor (ou seja, o mais curto) possível, em termos de contagem de bytes.
Casos de teste
As caixas de teste são indexadas em 1. Você pode usar o índice 0, mas especifique-o na sua resposta se o fizer.
1 1
2 2
3 4
4 5
5 10
6 11
7 13
8 14
9 28
10 29
11 31
12 32
13 37
14 38
15 40
16 41
17 82
18 83
19 85
20 86
10000 1679657
Referências
- WolframMathWorld
- OEIS A003278
code-golf
sequence
arithmetic
Freira Furada
fonte
fonte
Respostas:
Gelatina , 4 bytes
Experimente online! ou verifique todos os casos de teste .
Como funciona
Isso usa indexação baseada em 0 e a definição principal do OEIS :
fonte
Haskell,
37 3632 bytesUsando a fórmula fornecida na entrada OEIS, usando índices baseados em 0. Obrigado @nimi por 4 bytes!
fonte
Python 3, 28 bytes
Uma função anônima que recebe entrada por meio de argumento e retorna o resultado. Isso é zero-indexado.
Como funciona
Experimente no Ideone
fonte
Python 3, 113 bytes
Ideone it!
fonte
Rubi,
28.24 bytesUsando o mesmo método que Dennis, com índices baseados em 0:
Execute os casos de teste em repl.it: https://repl.it/Cif8/1
fonte
Pyke, 5 bytes
Experimente aqui!
Indexação baseada em 0
A mesma fórmula da resposta da geléia
fonte
Java 8,
5246 bytes0 indexado.
fonte
return
mas você precisa fazer o ponto e vírgula depois