给定一些正整数n
,设计一个带有最少标记数的量角器,使您能够测量所有角度的整数倍2π/n
(每个角度一次测量)。
细节
作为输出,可以在的范围内输出的整数列表0
到n-1
(或1
到n
)表示每一个标记的位置。或者,也可以输出长度的串/列表n
与#
在每个标记的位置和_
(下划线)在有无。(或两种不同的字符,如果更方便的。)
实施例:对于n = 5
您需要的3马克到能够测量所有角度2π/5, 4π/5, 6π/5, 8π/5, 2π
通过设置(例如)在1马克0
,在1马克2π/5
和1马克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中找到