Introdução
Quase todo mundo está familiarizado com o Problema do Vendedor Viajante (TSP). A tarefa é, dada uma lista de N
cidades, encontrar o ciclo hamiltoniano mínimo , ou seja, o caminho mais curto que visita cada cidade e volta ao início. Não é disso que se trata esse desafio. Esse desafio é implementar a solução de Chuck Norris para o TSP:
Chuck Norris resolveu o problema do Vendedor
O(1)
ambulante a tempo: dividir o vendedor em N pedaços; chute cada peça para uma cidade diferente.
Desafio
Para resolver o TSP dessa maneira, precisamos de um vendedor suficientemente durável que não evite frivolidades como desmembramento; um número de cidades para visitar; um conjunto de produtos para vender; um método concreto de desmembramento; e um cálculo para pontuação.
Especificação
- Cidades
N
é o número de citações que nosso vendedor visitará
- Vendedor
- O programa ou função principal
- Escrito no idioma
X
- Com comprimento mod
N
igual a0
- Produtos
- Desmembramento
- Fatiar o vendedor em
N
pedaços contínuos de igual comprimento - Cada peça deve ser uma função ou programa válido na linguagem
X
- Fatiar o vendedor em
- Resultado
- Quando executado, o Vendedor deve produzir
Chuck Norris
e as peças fatiadas devem produzir um produto distinto - Apenas espaço em branco à direita é aceitável
- Quando executado, o Vendedor deve produzir
- Pontuação
- O comprimento
L
,, do Vendedor em bytes dividido pelo número de cidadesN
, ao quadrado. Score = L/(N*N)
- Menor pontuação ganha
- Inclua 3 números significativos ao publicar sua pontuação decimal
- O comprimento
Exemplos
- Este vendedor visita três cidades
N=3
e tem 9L=9
. Assim, a pontuação para esta resposta seriaS = 9 / (3 * 3) = 9/9 = 1
.- Observe que o Vendedor e cada peça fatiada (dos quais existem 3) devem ser programas ou funções válidos no mesmo idioma.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
eL=20
assimS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
ElementData
permitidos embutidos como o Mathematica ? (Eu duvido que vai economizar muito, mas eu não sei.)