introduction
Presque tout le monde connaît le problème des vendeurs ambulants (TSP). La tâche consiste à, à partir d'une liste de N
villes, trouver le cycle hamiltonien minimum , c'est-à-dire le chemin le plus court qui visite chaque ville et revient en boucle au départ. Ce n'est pas de cela qu'il s'agit. Ce défi consiste à implémenter la solution de Chuck Norris au TSP:
Chuck Norris a résolu le problème du voyageur de
O(1)
commerce à temps: divisez le vendeur en N morceaux; donner un coup de pied chaque morceau à une ville différente.
Défi
Afin de résoudre le TSP de cette manière, nous avons besoin d'un vendeur suffisamment durable qui ne craindra pas les frivolités comme le démembrement; un certain nombre de villes à visiter; un ensemble de produits à vendre; une méthode concrète de démembrement; et un calcul pour la notation.
spécification
- Villes
N
est le nombre de citations que notre vendeur visitera
- Vendeur
- Le programme ou la fonction principale
- Écrit dans la langue
X
- Avec une longueur mod
N
égale à0
- Des produits
- Les noms complets des éléments du tableau périodique
- Cela inclut les noms des éléments nouvellement acceptés
- Démembrement
- Couper le vendeur en
N
morceaux continus de longueur égale - Chaque pièce doit être une fonction ou un programme valide dans la langue
X
- Couper le vendeur en
- Production
- Une fois exécuté, le vendeur doit produire
Chuck Norris
et les morceaux en tranches doivent chacun produire un produit distinct - Seul un espace blanc arrière supplémentaire est acceptable
- Une fois exécuté, le vendeur doit produire
- Notation
- La longueur,
L
du vendeur en octets divisée par le nombre de villesN
,, au carré. Score = L/(N*N)
- Plus petit score gagne
- Veuillez inclure 3 chiffres significatifs lors de la publication de votre score décimal
- La longueur,
Exemples
- Ce vendeur visite 3 villes ainsi
N=3
et il a une longueur de 9 doncL=9
. Ainsi, le score de cette réponse seraitS = 9 / (3 * 3) = 9/9 = 1
.- Notez que le vendeur et chaque pièce découpée (dont il y en a 3) doivent tous être des programmes ou des fonctions valides dans la même langue.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4
etL=20
ainsiS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron
ElementData
autorisées? (Je doute que cela économise beaucoup, mais je ne sais pas.)