introduzione
Quasi tutti hanno familiarità con il Traveller Salesman Problem (TSP). Il compito è, dato un elenco di N
città, trovare il ciclo hamiltoniano minimo , ovvero il percorso più breve che visita ogni città e torna al punto di partenza. Non è questa la sfida. Questa sfida è implementare la soluzione di Chuck Norris al TSP:
Chuck Norris ha risolto in
O(1)
tempo il problema del commesso viaggiatore : suddividere il commesso in N pezzi; calciare ogni pezzo in una città diversa.
Sfida
Per risolvere il TSP in questo modo, abbiamo bisogno di un commesso sufficientemente duraturo che non eviterà frivolezze come lo smembramento; un certo numero di città da visitare; un insieme di prodotti da vendere; un metodo concreto di smembramento; e un calcolo per il punteggio.
specificazione
- Città
N
è il numero di citazioni che il nostro venditore visiterà
- Venditore
- Il programma o la funzione principale
- Scritto in lingua
X
- Con lunghezza mod
N
uguale a0
- Prodotti
- Dismemberment
- Affettare il commesso in
N
pezzi continui di uguale lunghezza - Ogni pezzo deve essere una funzione o un programma valido nella lingua
X
- Affettare il commesso in
- Produzione
- Quando eseguito, il venditore dovrebbe produrre
Chuck Norris
e i pezzi tagliati dovrebbero produrre ciascuno un prodotto distinto - È accettabile solo uno spazio bianco finale aggiuntivo
- Quando eseguito, il venditore dovrebbe produrre
- punteggio
- La lunghezza
L
del venditore in byte divisa per il numero di cittàN
, quadrata. Score = L/(N*N)
- Il punteggio più piccolo vince
- Ti preghiamo di includere 3 cifre significative quando pubblichi il tuo punteggio decimale
- La lunghezza
Esempi
- Questo venditore visita 3 città così
N=3
e ha una lunghezza di 9 cosìL=9
. Quindi il punteggio per questa risposta sarebbeS = 9 / (3 * 3) = 9/9 = 1
.- Si noti che il venditore e ogni pezzo tagliato (di cui ce ne sono 3), dovrebbero essere tutti programmi o funzioni validi nella stessa lingua.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
eL=20
cosìS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
ElementData
ammessi incorporati come quelli di Mathematica ? (Dubito che salverà molto, ma non lo so.)