何らかの正の整数が与えられた場合n
、マークの数が最も少ない分度器を設計します。これにより、2π/n
(それぞれの測定で)の整数倍であるすべての角度を測定できます。
詳細
出力として、各マークの位置を表す0
to n-1
(または1
to n
)の範囲の整数のリストを出力できます。別の方法としては、長さの出力文字列/一覧表示することができますn
と#
、各マークの位置との_
何もありません(アンダースコア)。(または2つの異なる文字をより便利になります。)
例:について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にあります