Dado un número entero positivo n
, diseñe un transportador con el menor número de marcas que le permita medir todos los ángulos que sean un múltiplo integral de 2π/n
(cada uno en una sola medición).
Detalles
Como salida, puede generar una lista de enteros en el rango 0
de n-1
(o 1
a n
) que representan la posición de cada marca. Alternativamente, puede generar una cadena / lista de longitud n
con un #
en la posición de cada marca y un _
(guión bajo) donde no hay ninguno. (O dos caracteres diferentes si es más conveniente).
Ejemplo: para n = 5
que necesite exactamente 3 marcas para poder medir todos los ángulos 2π/5, 4π/5, 6π/5, 8π/5, 2π
configurando (por ejemplo) una marca en 0
, una marca en 2π/5
y una marca en 6π/5
. Podemos codificar esto como una lista [0,1,3]
o como una cadena ##_#_
.
Ejemplos
Tenga en cuenta que las salidas no son necesariamente únicas.
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]
PD: Esto es similar al problema de la regla dispersa , pero en lugar de una escala lineal (con dos extremos) consideramos una escala circular (angular).
PPS: este script debe calcular un ejemplo de un conjunto de marcas para cada uno n
. Pruébalo en línea!
PPPS: como señaló @ngn, este problema es equivalente a encontrar una base de diferencia mínima de un grupo cíclico de orden n
. Los pedidos mínimos se enumeran en http://oeis.org/A283297 y algunos límites teóricos se encuentran en https://arxiv.org/pdf/1702.02631.pdf