Introducción
Casi todos están familiarizados con el problema del vendedor ambulante (TSP). La tarea es, dada una lista de N
ciudades, encontrar el ciclo hamiltoniano mínimo , es decir, el camino más corto que visita cada ciudad y vuelve al círculo completo desde el principio. De eso no se trata este desafío. Este desafío es implementar la solución de Chuck Norris al TSP:
Chuck Norris resolvió el problema del vendedor ambulante a
O(1)
tiempo: divida al vendedor en N piezas; patear cada pieza a una ciudad diferente.
Desafío
Para resolver el TSP de esta manera, necesitamos un vendedor lo suficientemente duradero que no evite las frivolidades como el desmembramiento; varias ciudades para visitar; un conjunto de productos para vender; un método concreto para el desmembramiento; y un cálculo para puntuar.
Especificación
- Ciudades
N
es la cantidad de citas que visitará nuestro vendedor
- Vendedor
- El programa o función principal
- Escrito en lenguaje
X
- Con mod de longitud
N
igual a0
- Productos
- Los nombres completos de los elementos en la tabla periódica
- Esto incluye los nombres de elementos recientemente aceptados
- Desmembramiento
- Cortando al vendedor en
N
piezas continuas de igual longitud - Cada pieza debe ser una función o programa válido en lenguaje
X
- Cortando al vendedor en
- Salida
- Cuando se ejecuta, el vendedor debe mostrar
Chuck Norris
y las piezas cortadas deben generar un producto distinto - Solo se aceptan espacios en blanco finales adicionales
- Cuando se ejecuta, el vendedor debe mostrar
- Puntuación
- La longitud,
L
del Vendedor en bytes dividida por el número de ciudadesN
, al cuadrado. Score = L/(N*N)
- El puntaje más pequeño gana
- Incluya 3 cifras significativas al publicar su puntaje decimal
- La longitud,
Ejemplos
- Este vendedor visita 3 ciudades así
N=3
y tiene una longitud de 9 asíL=9
. Por lo tanto, la puntuación para esta respuesta seríaS = 9 / (3 * 3) = 9/9 = 1
.- Tenga en cuenta que el vendedor y cada pieza en rodajas (de las cuales hay 3), deben ser programas o funciones válidas en el mismo idioma.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
yL=20
entoncesS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
ElementData
permitidos los complementos como el de Mathematica ? (Dudo que ahorre mucho, pero no lo sé)