Einführung
Fast jeder kennt das Travelling Salesman Problem (TSP). Die Aufgabe besteht darin, anhand einer Liste von NStädten den minimalen Hamilton-Zyklus zu finden, dh den kürzesten Weg, der jede Stadt besucht und den Kreis schließt, um zum Start zurückzukehren. Darum geht es bei dieser Herausforderung nicht. Diese Herausforderung besteht darin, Chuck Norris ' Lösung für den TSP zu implementieren :
Chuck Norris löste das Problem des Handlungsreisenden
O(1)rechtzeitig: Zerlege den Handlungsreisenden in N Teile; Kick jedes Stück in eine andere Stadt.
Herausforderung
Um den TSP auf diese Weise zu lösen, brauchen wir einen ausreichend langlebigen Verkäufer, der Frivolitäten wie Zergliederung nicht scheut. eine Reihe von Städten zu besuchen; eine Reihe von Produkten zu verkaufen; eine konkrete Methode zur Zerlegung; und eine Berechnung für die Wertung.
Spezifikation
- Städte
Nist die Anzahl der von unserem Verkäufer besuchten Stellen
- Verkäufer
- Das Hauptprogramm oder die Hauptfunktion
- In Sprache geschrieben
X - Mit Länge mod
Ngleich0
- Produkte
- Zerstückelung
- Den Verkäufer in
Ngleichlange durchgehende Stücke schneiden - Jedes Stück sollte eine gültige Funktion oder ein gültiges Programm in der Sprache sein
X
- Den Verkäufer in
- Ausgabe
- Bei der Ausführung sollte der Verkäufer
Chuck Norrisein bestimmtes Produkt ausgeben und die geschnittenen Stücke sollten jeweils ein bestimmtes Produkt ausgeben - Nur zusätzliche Leerzeichen am Ende sind zulässig
- Bei der Ausführung sollte der Verkäufer
- Wertung
- Die Länge
Ldes Verkäufers in Bytes geteilt durch die Anzahl der StädteNim Quadrat. Score = L/(N*N)- Kleinste Punktzahl gewinnt
- Bitte geben Sie 3 signifikante Ziffern an, wenn Sie Ihre Dezimalpunktzahl veröffentlichen
- Die Länge
Beispiele
- Dieser Verkäufer besucht so 3 Städte
N=3und hat so eine Länge von 9L=9. Somit wäre die Punktzahl für diese AntwortS = 9 / (3 * 3) = 9/9 = 1.- Beachten Sie, dass der Verkäufer und jedes in Scheiben geschnittene Stück (von denen es 3 gibt) gültige Programme oder Funktionen in derselben Sprache sein sollten.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4undL=20soS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron

ElementDataerlaubt? (Ich bezweifle, dass es viel spart, aber ich weiß es nicht.)