Определение
a(1) = 1
a(2) = 2
a(n)
наименьшее число,k>a(n-1)
которое избегает любой 3-членной арифметической прогрессии вa(1), a(2), ..., a(n-1), k
.- Другими словами,
a(n)
это наименьшее числоk>a(n-1)
такое, что там не существуетx
,y
где0<x<y<n
иa(y)-a(x) = k-a(y)
.
Проработанный пример
Для n=5
:
У нас есть a(1), a(2), a(3), a(4) = 1, 2, 4, 5
Если a(5)=6
, то 2, 4, 6
сформируйте арифметическую прогрессию.
Если a(5)=7
, то 1, 4, 7
сформируйте арифметическую прогрессию.
Если a(5)=8
, то 2, 5, 8
сформируйте арифметическую прогрессию.
Если a(5)=9
, то 1, 5, 9
сформируйте арифметическую прогрессию.
Если a(5)=10
арифметическая прогрессия не найдена.
Поэтому a(5)=10
.
задача
Учитывая n
, выходной a(n)
.
Спекуляции
n
будет положительным целым числом.- Вы можете использовать 0-indexed вместо 1-indexed, в этом случае
n
может быть0
. Пожалуйста, укажите это в своем ответе, если вы используете 0-indexed.
счет
Поскольку мы пытаемся избежать 3-членной арифметической прогрессии, а 3 - это небольшое число, ваш код должен быть как можно меньшим (то есть коротким) с точки зрения количества байтов.
Testcases
Тестовые случаи 1-индексированы. Вы можете использовать 0-индексированный, но, если вы это сделаете, укажите это в своем ответе.
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
Ссылки
- WolframMathWorld
- OEIS A003278
code-golf
sequence
arithmetic
Дрянная Монахиня
источник
источник
Ответы:
Желе , 4 байта
Попробуйте онлайн! или проверьте все контрольные примеры .
Как это работает
При этом используется индексирование на основе 0 и основное определение из OEIS :
источник
Haskell,
37 3632 байтаИспользуя данную формулу в записи OEIS, используя индексы на основе 0. Спасибо @nimi за 4 байта!
источник
Python 3, 28 байт
Анонимная функция, которая принимает входные данные через аргумент и возвращает результат. Это с нулевым индексом.
Как это работает
Попробуйте это на Ideone
источник
Python 3, 113 байт
Идео это!
источник
Рубин,
2824 байтаИспользуя тот же метод, что и Деннис, с индексами на основе 0:
Запустите тестовые случаи на repl.it: https://repl.it/Cif8/1
источник
Пайк, 5 байт
Попробуй это здесь!
Индексирование на основе 0
Та же формула, что и желе ответ
источник
Java 8,
5246 байт0 проиндексировано.
источник
return
но тебе нужна точка с запятой