Учитывая некоторое положительное целое число n, создайте транспортир с наименьшим количеством меток, который позволит вам измерить все углы, кратные целому числу 2π/n(каждое в одном измерении).
Детали
В качестве вывода, вы можете вывести список целых чисел в диапазоне 0от n-1(или 1к n) , которые представляют позицию каждого знака. В качестве альтернативы вы можете вывести строку / список длины nс a #в позиции каждой метки и a _(подчеркивание) там, где ее нет. (Или два разных символов , если более удобно.)
Пример: Для n = 5вас нужно точно 3 балла , чтобы быть в состоянии измерить все углы 2π/5, 4π/5, 6π/5, 8π/5, 2π, установив (например) одной метки 0, одной метки 2π/5и одной метки 6π/5. Мы можем закодировать это как список [0,1,3]или как строку ##_#_.

Примеры
Обратите внимание, что выходные данные не обязательно являются уникальными.
n: output:
1 [0]
2 [0,1]
3 [0,1]
4 [0,1,2]
5 [0,1,2]
6 [0,1,3]
7 [0,1,3]
8 [0,1,2,4]
9 [0,1,3,4]
10 [0,1,3,6]
11 [0,1,3,8]
20 [0,1,2,3,6,10]
PS: Это похоже на проблему разреженной линейки , но вместо линейной шкалы (с двумя концами) мы рассматриваем круговую (угловую) шкалу.
PPS: этот скрипт должен вычислять один пример набора меток для каждого n. Попробуйте онлайн!
PPPS: Как отметил @ngn, эта проблема эквивалентна нахождению минимальной разностной базы циклической группы порядка n. Минимальные заказы перечислены в http://oeis.org/A283297, а некоторые теоретические границы приведены в https://arxiv.org/pdf/1702.02631.pdf.