Wprowadzenie
Prawie wszyscy znają problem Traveling Salesman Problem (TSP). Zadanie polega na Nznalezieniu, na podstawie listy miast, minimalnego cyklu hamiltonowskiego , czyli najkrótszej ścieżki, która odwiedza każde miasto i zatacza koło. Nie o to chodzi w tym wyzwaniu. Wyzwanie polega na wdrożeniu rozwiązania Chucka Norrisa w TSP:
Chuck Norris rozwiązał problem Podróżującego Sprzedawcy na
O(1)czas: rozbić sprzedawcę na N części; kopnij każdy kawałek do innego miasta.
Wyzwanie
Aby rozwiązać TSP w ten sposób, potrzebujemy wystarczająco trwałego sprzedawcy, który nie będzie unikał frywolności, takich jak rozczłonkowanie; wiele miast do odwiedzenia; zestaw produktów do sprzedaży; konkretna metoda rozczłonkowania; oraz obliczenie punktacji.
Specyfikacja
- Miasta
Nto liczba odwiedzin, które odwiedzi nasz sprzedawca
- Sprzedawca
- Główny program lub funkcja
- Napisane w języku
X - O długości mod
Nrównej0
- Produkty
- Amputacja
- Krojenie sprzedawcy na
Nciągłe kawałki o równej długości - Każdy utwór powinien być prawidłową funkcją lub programem w języku
X
- Krojenie sprzedawcy na
- Wynik
- Po wykonaniu Sprzedawca powinien wysyłać,
Chuck Norrisa pokrojone kawałki powinny dawać odrębny produkt - Dopuszczalna jest tylko dodatkowa spacja
- Po wykonaniu Sprzedawca powinien wysyłać,
- Punktacja
- Długość
Lsprzedawcy w bajtach podzielona przez liczbę miastN, do kwadratu. Score = L/(N*N)- Najmniejszy wynik wygrywa
- Podczas publikowania wyniku dziesiętnego należy podać 3 znaczące liczby
- Długość
Przykłady
- Ten sprzedawca odwiedza 3 miasta,
N=3a jego długość to 9L=9. Tak więc wynik tej odpowiedzi byłby następującyS = 9 / (3 * 3) = 9/9 = 1.- Należy pamiętać, że sprzedawca i każdy pokrojony kawałek (których jest 3), wszystkie powinny być poprawnymi programami lub funkcjami w tym samym języku.
Program -> Output
------- ------
aaaBBBccc -> Chuck Norris
aaa -> Helium
BBB -> Iridium
ccc -> Tennessine
N=4iL=20takS=20/16=1.25
Program -> Output
------- ------
aaaaaBBBBBcccccDDDDD -> Chuck Norris
aaaaa -> Hydrogen
BBBBB -> Cadmium
ccccc -> Mercury
DDDDD -> Iron

ElementDatadozwolone są wbudowane elementy takie jak Mathematica ? (Wątpię, czy to dużo zaoszczędzi, ale nie wiem.)