n
Entwerfen Sie bei einer positiven Ganzzahl einen Winkelmesser mit der geringsten Anzahl von Markierungen, mit dem Sie alle Winkel messen können, die ein ganzzahliges Vielfaches von 2π/n
(jeweils in einer Messung) sind.
Einzelheiten
Als Ausgabe können Sie eine Liste von Ganzzahlen im Bereich 0
bis n-1
(oder 1
bis n
) ausgeben , die die Position jeder Marke darstellen. Alternativ können Sie eine Zeichenfolge / Liste n
mit einer Länge #
an der Position jeder Marke und einem _
(Unterstrich) ausgeben, wenn keine vorhanden ist. (Oder zwei verschiedene Zeichen , wenn bequemer.)
Beispiel: Für n = 5
Sie müssen genau drei Marken der Lage sein , alle Winkel zu messen , 2π/5, 4π/5, 6π/5, 8π/5, 2π
indem (zum Beispiel) eine Markierung an 0
, eine Markierung an 2π/5
und eine Markierung an 6π/5
. Wir können dies als Liste [0,1,3]
oder als Zeichenfolge codieren ##_#_
.
Beispiele
Beachten Sie, dass die Ausgaben nicht unbedingt eindeutig sind.
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: Dies ähnelt dem Problem mit dem spärlichen Lineal , aber anstelle einer linearen Skala (mit zwei Enden) wird eine kreisförmige (eckige) Skala betrachtet.
PPS: Dieses Skript sollte jeweils ein Beispiel für eine Reihe von Markierungen berechnen n
. Probieren Sie es online!
PPPS: Wie @ngn hervorhob, entspricht dieses Problem dem Auffinden einer minimalen Differenzbasis einer zyklischen Ordnungsgruppe n
. Die Mindestbestellmengen sind unter http://oeis.org/A283297 aufgeführt, und einige theoretische Grenzen finden Sie unter https://arxiv.org/pdf/1702.02631.pdf