Стандартная линейка длиной n имеет метки расстояния в позициях 0, 1, ..., n (в любых единицах измерения). У разреженного правителя есть подмножество этих отметок. Линейка может измерить расстояние k, если оно имеет метки в позициях p и q с p - q = k .
Соревнование
Учитывая положительное целое число n , выведите минимальное количество меток, необходимых для разреженной линейки длины n, чтобы она могла измерять все расстояния 1, 2, ..., n .
Это OEIS A046693 .
Например, для входа 6 вывод равен 4. А именно, линейка с отметками 0, 1, 4, 6 работает, так как 1−0 = 1, 6−4 = 2, 4−1 = 3, 4−0 = 4, 6−1 = 5 и 6−0 = 6.
Дополнительные правила
- Алгоритм должен быть действителен для сколь угодно большого n . Однако допустимо, если программа ограничена памятью, временем или типом данных.
- Ввод / вывод может быть взят / произведен любым разумным способом .
- Программы или функции разрешены на любом языке программирования . Стандартные лазейки запрещены.
- Самый короткий код в байтах побеждает.
Контрольные примеры
1 -> 2
2 -> 3
3 -> 3
4 -> 4
5 -> 4
6 -> 4
7 -> 5
8 -> 5
9 -> 5
10 -> 6
11 -> 6
12 -> 6
13 -> 6
14 -> 7
15 -> 7
16 -> 7
17 -> 7
18 -> 8
19 -> 8
20 -> 8
21 -> 8
22 -> 8
23 -> 8
24 -> 9
25 -> 9
26 -> 9
27 -> 9
28 -> 9
29 -> 9
30 -> 10
31 -> 10
32 -> 10
Ответы:
Желе , 14 байт
Монадическая ссылка, принимающая и возвращающая неотрицательные целые числа.
Попробуйте онлайн! (первые 15 значений здесь - не эффективны)
Как?
Находит все линейки, которые можно сделать, используя метки от 1 до n + 1 (набор степеней [1, n + 1]), упорядоченные по количеству меток, и сохраняет только те, которые создают максимально измеряемые расстояния (длину множество различий между всеми упорядоченными парами меток), затем возвращает длину первой (т. е. [одной из] самой короткой [с]).
источник
Wolfram Language (Mathematica) , 65 байт
Попробуйте онлайн!
источник
Mathematica, 84 байта
Попробуйте онлайн!
источник
Pyth , 14 байт
Попробуй это здесь!
Pyth ,
2119 байтПопробуй это здесь!
Как это устроено
Я обновлю это после игры в гольф.
Спасибо isaacg за то, что он сохранил байт для моего второго подхода и вдохновил меня на игру в гольф на 3 байта от моего текущего подхода!
источник
S
не нужно.Python 2 ,
129128126 байтовспасибо полностью человеку за -1 байт
Попробуйте онлайн!
вывод через код выхода
источник
Шелуха ,
2018 байтСпасибо @ H.PWiz за -2 байта!
Попробуйте онлайн!
объяснение
источник
oa-
так же, как≠
≈
.Желе , 17 байт
Попробуйте онлайн!
Сохранено 1 байт благодаря Джонатану Аллану !
источник
ḢL
должно быть в порядке ..Pyth, 15 байт
Тестирование
Как это устроено
источник
Желе , 17 байт
Попробуйте онлайн!
Заимствовал уловку из ответа мистера Xcoder для -1.
-1 спасибо Джонатану Аллану .
источник
ḢL
должно быть в порядке ..Рубин , 98 байт
Попробуйте онлайн!
источник